شرح صفوف ومحتوى الفقرة
بدون قيود، يقبل المعامل {id} أي نص يمر في الرابط، مما قد يؤدي لتداخل المسارات عند طلب عنوان مثل /users/settings. تتيح دالة ->where فرض تعبير نمطي Regex على معامل واحد أو عدة معاملات لضمان عدم تطابق المسار إلا مع الصيغة الصحيحة.
- قيد لمعامل واحد (Single Constraint): استدعاء ->where('id', '[0-9]+') لحصر القيمة في الأرقام فقط.
- مصفوفة قيود (Array of Constraints): تمرير مصفوفة ترابطية لتقييد عدة معاملات في نفس المسار دفعة واحدة.
- الرد التلقائي 404 (Automatic 404 Fallback): إذا لم تتطابق الصيغة ولم يوجد مسار بديل يعيد الإطار حالة 404.
PHP
<?php
use Illuminate\Support\Facades\Route;
Route::get('/invoices/{id}/{code}', function (
string $id, string $code
) {
return ['invoice' => $id, 'code' => $code];
})->where(['id' => '[0-9]+', 'code' => '[A-Z]{3}']);