إتقان التحقق الشرطي في Laravel 12
يوليو 7, 2025إتقان التحقق الشرطي في Laravel 12
في Laravel 12، نظام التحقق (validation) قوي جدًا، وميزة التحقق الشرطي بتخليك تتحكم في القوانين بتاعتك بناء على قيمة حقل تاني. يعني لو في حقل بيتطلب يشترط فقط لما حاجة تحصل، مثلاً حقل "company_name" يظهر ويتطلب لو المستخدم اختار "متوظف"، أو حقل "credit_card_number" يظهر لو الاختيار كان "Credit Card". الموضوع بيدّي مرونة وسهولة في تصميم الفورمات.
🔍 ليه نستخدم التحقق الشرطي؟
- لما تكون بعض الحقول مش دايمًا مطلوبة.
- عشان تبقى الفورمة ديناميكية ومش بتطلب حاجة مالهاش لازمة.
- عشان تقدر تبني Multi-step Forms أو APIs بسهولة.
🛠 أدوات Laravel 12 للتحقق الشرطي
required_ifrequired_withRule::when()
1. مثال عملي على required_if
// في Controller:
$request->validate([
'employment_status' => 'required|in:employed,unemployed',
'company_name' => 'required_if:employment_status,employed',
]);
لو المستخدم اختار employed، يبقى حقل company_name لازم يتعبّي.
2. مثال على required_with
// في Controller:
$request->validate([
'shipping_address' => 'required_with:delivery_method',
'delivery_method' => 'nullable|in:pickup,delivery',
]);
لو المستخدم اختار طريقة شحن، يبقى لازم يكتب عنوان الشحن.
3. مثال باستخدام Rule::when()
use Illuminate\Validation\Rule;
$request->validate([
'payment_method' => 'required|in:credit_card,paypal',
'credit_card_number' => [
Rule::when($request->input('payment_method') === 'credit_card', ['required', 'numeric', 'digits:16']),
],
]);
لو الدفع كريدت كارد، يبقى لازم رقم بطاقتك.
📌 نصائح احترافية
- جمع قواعد التحقق في
FormRequestبدل الكنترولر إذا الموضوع كبير. - استعمل الميثودز ساعد زي
sometimes()أوbail()للتحكم أحسن بالتنفيذ. - اختبر الفورم ديالك حتى لو بغض النظر عن الواجهة، تزبط قواعد التحقق.
📚 ملخص سريع
التحقق الشرطي بيخلي الفورم بقى ذكي وتتفاعل مع الحالة اللي المستخدم فيها. في Laravel 12 عندك أكتر من طريقة تتحكم بيها، وبأمثلة عملية، تقدر تطبّق الحالة اللي محتاجها بالضبط.
المدونة
أغسطس 17, 2025
Laravel Global Scopes: Automatic Query Filtering Eloquent الأهمية: فرض فلترة ثابتة على جميع استعلامات الموديل (مثل Soft Deletes) دون تكرا...
يوليو 01, 2025
حلل كود Laravel باستخدام Laravel Introspect لو بتعمل Refactor كبير أو بتبني أدوات Dev، Laravel Introspect بيسمحلك تستعلم عن الكود: فيوز، مودلز، رو...
يونيو 29, 2025
إزاي OAuth بيشتغل؟ OAuth هو بروتوكول بيخلّي التطبيقات تقدر تدخل على بياناتك بطريقة آمنة من غير ما تدّيهم الباسورد بتاعك. زي مثلًا لو حبيت تطبيق ينشر...
يوليو 01, 2025
🚀 نظام Queue & Jobs في Laravel هناخدك خطوة خطوة من أول إنشاء الجداول لحد ما تشغّل الطوابير في Production عن طريق Supervisor. الخطوة 1: إنشاء...
يوليو 24, 2025
🧠 يعني إيه Dynamic Import؟ الديناميـك إمبورت ببساطة هو إنك تحمّل ملف أو موديول JavaScript "وقت الحاجة بس" مش من أول الصفحة. الميزة دي بتقلل حجم ال...
يوليو 01, 2025
تعزيز PHP enums باستخدام حزمة archtechx/enums من PHP 8.1، ظهر نوع جديد اسمه “enums” بيخليك تعرف قيم ثابتة بأسماء مرمّزة زي statuses...