إتقان التحقق الشرطي في Laravel 12

يوليو 7, 2025

إتقان التحقق الشرطي في Laravel 12

في Laravel 12، نظام التحقق (validation) قوي جدًا، وميزة التحقق الشرطي بتخليك تتحكم في القوانين بتاعتك بناء على قيمة حقل تاني. يعني لو في حقل بيتطلب يشترط فقط لما حاجة تحصل، مثلاً حقل "company_name" يظهر ويتطلب لو المستخدم اختار "متوظف"، أو حقل "credit_card_number" يظهر لو الاختيار كان "Credit Card". الموضوع بيدّي مرونة وسهولة في تصميم الفورمات.

🔍 ليه نستخدم التحقق الشرطي؟

  • لما تكون بعض الحقول مش دايمًا مطلوبة.
  • عشان تبقى الفورمة ديناميكية ومش بتطلب حاجة مالهاش لازمة.
  • عشان تقدر تبني Multi-step Forms أو APIs بسهولة.

🛠 أدوات Laravel 12 للتحقق الشرطي

  • required_if
  • required_with
  • Rule::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 عندك أكتر من طريقة تتحكم بيها، وبأمثلة عملية، تقدر تطبّق الحالة اللي محتاجها بالضبط.

المدونة

إزاي تستخدم Web Components ببساطة وذكاء

يوليو 06, 2025

إزاي تستخدم Web Components ببساطة وذكاء كتير من المطورين بيفكروا إن Web Components معمولة عشان تبقى بديل كامل لفريموركات زي React أو Vue. بس الحقيق...

هل لارافيل بطيء؟ تحسين أداء الاستعلامات والفهارس بأمثلة

يوليو 20, 2025

دليل عملي ومفصل مع أمثلة واقعية وعينات كود تسهّل عليك تفادي بطء Laravel وتحافظ على سرعة التطبيق. 1. 🧠 استدعي اللي محتاجه بس لو بتعمل DB::tabl...

React Native 0.80 وExecuTorch: بداية قوية للذكاء الاصطناعي المحلي في تطبيقات الموبايل

يوليو 28, 2025

🚀 الجديد في React Native 0.80 بالتفصيل الإصدار React Native 0.80 يعتبر نقطة تحول حقيقية في عالم تطوير تطبيقات الموبايل باستخدام React Native. التح...

كيف تجعل موقعك "سريع جداً" خطوة بخطوة

يوليو 30, 2025

لماذا السرعة ليست رفاهية؟ في زمن الضغط والسرعة، ما فيش حد عنده وقت يستنى موقع يحمّل! المستخدمين على الموبايل بينسحبوا من الموقع إذا ما فتحش في أق...

حقق أداءً أعلى لتقارير البيانات الضخمة باستخدام نظام (Queues)

يوليو 07, 2025

إزاي نعمل كاش لتقارير بفترة زمنية ثابتة إزاي نولّد تقارير ضخمة في الخلفية باستخدام الـ Job Queues 1. 🧠 كاش للتقارير بفترة زمنية ثابتة لو ع...

نظام طوابير Laravel واستخدام Supervisor في الإنتاج

يوليو 01, 2025

🚀 نظام Queue & Jobs في Laravel هناخدك خطوة خطوة من أول إنشاء الجداول لحد ما تشغّل الطوابير في Production عن طريق Supervisor. الخطوة 1: إنشاء...

The Ultimate Managed Hosting Platform