إتقان التحقق الشرطي في 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 عندك أكتر من طريقة تتحكم بيها، وبأمثلة عملية، تقدر تطبّق الحالة اللي محتاجها بالضبط.
المدونة
يوليو 20, 2025
دليل عملي ومفصل مع أمثلة واقعية وعينات كود تسهّل عليك تفادي بطء Laravel وتحافظ على سرعة التطبيق. 1. 🧠 استدعي اللي محتاجه بس لو بتعمل DB::tabl...
يونيو 30, 2025
أحدث مميزات ECMAScript 2025 في 25 يونيو 2025، تم اعتماد ES2025 رسميًا. الإضافات الجاية هتسهل عليك كتابة الكود: 1. 📦 Import Attributes و JSON Module...
يوليو 02, 2025
تجاوز $fillable بأمان باستخدام forceFill() في Laravel جربت تستخدم create() في Laravel ولاقيت إن حقول زي role أو status مش بتتحفظ؟ ده بسبب حماية Larav...
يوليو 20, 2025
في Laravel 12، تم تقديم Laravel Context كأداة قوية بتخلي تتبع الطلبات، تسجيل الأخطاء، وتحليل سلوك الوظائف الخلفية أسهل وأدق من أي وقت فات. وده بيحصل ع...
يوليو 07, 2025
Laravel 12.19: استخدام Attributes تنظّم Query Builder في Laravel 12.19، دلوقتي تقدر تستخدم Attribute اسمه #[UseEloquentBuilder] علشان تحدد Query Bu...
يوليو 06, 2025
إزاي تستخدم Web Components ببساطة وذكاء كتير من المطورين بيفكروا إن Web Components معمولة عشان تبقى بديل كامل لفريموركات زي React أو Vue. بس الحقيق...