مساعدو التواريخ النسبية في لارافيل 11.42
فريق لارافل اصدر تحديث اﻹصدا 11.42 و الذي يتضمن مساعدو التاريخ (date helper) والتحقق من صحة الأرقام و المزيد.
#اختصارات التواريخ النسبية
ساهم جيسون ماكرياري (Jason McCreary) بأساليب اختصار التواريخ النسبية في أداة إنشاء الاستعلامات (query builder)، والتي يمكنك استخدامها لتقييد حقول التاريخ لأشياء مثل العثور على السجلات في الماضي والمستقبل واليوم وبعد اليوم والمزيد:
DB::table('invoices') ->wherePast('due_at') ->get(); DB::table('invoices') ->whereFuture('due_at') ->get(); DB::table('invoices') ->whereNowOrPast('due_at') ->get(); DB::table('invoices') ->whereNowOrFuture('due_at') ->get(); DB::table('invoices') ->whereToday('due_at') ->get(); DB::table('invoices') ->whereBeforeToday('due_at') ->get(); DB::table('invoices') ->whereAfterToday('due_at') ->get();
بالتأكيد، إليك ترجمة وتوضيح لما ذُكر:بالإضافة إلى الطرق الموضحة أعلاه، تتضمن أيضًا متغيرات "or" و "not" والقدرة على تمرير مصفوفة من أسماء الأعمدة:
متغيرات "or" و "not":
هذا يعني أنه يمكنك دمج هذه الاختصارات للتواريخ النسبية مع شروط أخرى باستخدام "or" (أو) و "not" (ليس). على سبيل المثال، يمكنك العثور على السجلات التي هي "في الماضي أو تم تحديثها اليوم".
هذا يوفر مرونة كبيرة في بناء استعلامات معقدة.
القدرة على تمرير مصفوفة من أسماء الأعمدة:
بدلاً من تطبيق شرط التاريخ على عمود واحد فقط، يمكنك تطبيقه على عدة أعمدة في وقت واحد.
هذا مفيد عندما يكون لديك تواريخ ذات صلة موزعة على أعمدة مختلفة.
"All of these methods have their where, or, and orWhereNot counterparts." (جميع هذه الطرق لها نظائرها من where و or و orWhereNot):
هذا يوضح أن كل اختصار للتواريخ النسبية (مثل wherePast و whereToday) له نظير في أساليب Laravel القياسية للاستعلام عن قاعدة البيانات (where، orWhere، orWhereNot).
هذا يضمن التكامل السلس مع نظام الاستعلام الحالي في Laravel.
"All methods also accept an array of column names as the first argument." (تقبل جميع الطرق أيضًا مصفوفة من أسماء الأعمدة كمعامل أول):
هذا تأكيد على المرونة التي تم توفيرها في هذه التحديثات.
"The wherePast and whereFuture have an optional second argument to set $now." (يحتوي wherePast و whereFuture على معامل ثاني اختياري لتعيين $now):
هذا يسمح لك بتحديد نقطة مرجعية مخصصة للوقت بدلاً من استخدام الوقت الحالي.
هذا مفيد لاختبار أو معالجة التواريخ في سياقات زمنية مختلفة.
"See Pull Request #54408 for implementation details and test examples." (راجع طلب السحب رقم 54408 للحصول على تفاصيل التنفيذ وأمثلة الاختبار):
هذا يوفر مرجعًا للمطورين الذين يرغبون في التعمق في كيفية تنفيذ هذه الميزة.
باختصار، هذا التحديث يوسع بشكل كبير من قدرات Laravel في التعامل مع التواريخ النسبية داخل استعلامات قاعدة البيانات، مما يجعلها أكثر قوة ومرونة.
// Before$rules = [ 'score' => 'numeric|integer|multiple_of:10|lte:some_field|max:100',]; // After$rules = [ 'score' => [ Rule::numeric() ->integer() ->multipleOf(10) ->lessThanOrEqual('some_field') ->max(100); ],];
#التحقق من الصحة الرقمي السلسساهم كارلوس جونيور بفئة تحقق من الصحة الرقمي السلس، مما يوفر طريقة معبرة لتحديد قواعد التحقق من الصحة الرقمية:
Context::add('url', $request->url());Context::addHidden('hidden_url', $request->url()); Context::missing('url'); // falseContext::missing('missing_key'); // true Context::missingHidden('url'); // trueContext::missingHidden('hidden_url'); // false
Route::get('/users', function () { return response()->streamJson([ 'data' => User::cursor(), ]);}); $this->getJson('/users') ->assertJsonCount(10, 'data') ->assertJsonPath('data.*.id', $users->pluck('id')->all());
- docs: clarify use of hasOption() by in
- Test Improvements by in
- [11.x] add Generics to Paginator's ArrayAccess methods by in
- [11.x] Fix docblocks for code that calls
enum_value()
by in - [11.x] Fix assertContent on laravel test that respond with Symfony Response Object by in
- [11.x] Add Higher Order Messaging support for last by in
- [11.x] Database testing traits has impact to artisan calls by in
- [11.x] Add precision to
Number::currency()
by in - [11.x] Add generics to lazy queries by in
- [11.x] Merge in eager loads from nested where queries by in
- [11.x] Fluent numeric validation by in
- [11.x] Fix casts +
withAttributes
by in - [11.x] Ensure batched jobs are actually batchable by in
- [11.x] Update PHPStan to 2.x by in
- Test Improvements by in
- Add relative date shorthands to Query Builder by in
- [11.x] feat: add better closure typing in QueriesRelationships by in
- [11.x] Fix the method explodeExplicitRule to support Numeric Validation by in
- Add
Builder
On Clone callback support by in - Support relative paths to SQLite databases by in
- [11.x] Where doesnt have nullable morph by in
- [11.x] Add the ability to skip migrations within tests by in
- Queue Integration Tests with Redis Cluster by in
- [11.x] Optimize
PendingBatch@ensureJobIsBatchable
by in - [11.x] Supports PHPUnit 12.0 by in
- [11.x] Fix spelling in comment by in
- [11.x] Add Context "missing" method by in
- [11.x] feat: add generics to Container methods by in
- [11.x] Add a setAssetRoot method to the UrlGenerator class by in
- [11.x] Handle Null Check in Str::startsWith and Str::endsWith by in
- [11.x] Improve check for relative sqlite databases by in
- Revert "[11.x] Use Str::wrap() instead of nesting Str::start() inside Str::finish()" by in
- [11.x] Job Batches with Redis Cluster by in
- [11.x] fix: specify type of TClass generic in Container by in
- [11.x] Improve docblocks for morph maps in
Relation
by in - docs: fix return type documentation for initializeSignal method by in
- [11.x] Add support for middlewares & failed handler on broadcastable events by in
- [11.x] json assertions on streamed content by in