انتقل إلى محتوى الدرس

Regex Constraints with where تقييد المعاملات بالتعابير النمطية

استقبال المعاملات الإلزامية والاختيارية من الرابط وتقييد صيغتها بالتعابير النمطية والدوال المساعدة وفق أحدث معايير إطار العمل Laravel 12 مع أمثلة وتطبيقات عملية متدرجة.
1 صفوف تعليمية
إطار العمل Laravel
0 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

بدون قيود، يقبل المعامل {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}']);