مساعدو التواريخ النسبية في لارافيل 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'); // false
Context::missing('missing_key'); // true
 
Context::missingHidden('url'); // true
Context::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());

جميع الحقوق محفوظة © 2025 Laravel | عربي