نقطة
  • الرئيسية
  • الخدمات
  • من نحن
  • الكتابات
  • تسجيل الدخول
الكتابات/tutorial/2024/06
● Tutorial17 يونيو 2024·15 دقيقة

13 أساسيات Laravel 11: التحقق من الصحة

تعلم أساسيات التحقق من صحة البيانات في Laravel 11 مع دليل احترافي وتعليمي. يغطي هذا الدرس تعريف المسارات وإنشاء المتحكمات وتنفيذ منطق التحقق.

Anis Marrouchi
Anis Marrouchi
Author
·EN · FR · AR

تعلم أساسيات التحقق من الصحة في Laravel 11 وعزز مهاراتك في التطوير مع أمثلة عملية وأفضل الممارسات.

تعريف المسارات

أولاً، لنفترض أن لدينا المسارات التالية محددة في ملف routes/web.php:

use App\Http\Controllers\PostController;
 
Route::get('/post/create', [PostController::class, 'create']);
Route::post('/post', [PostController::class, 'store']);

يعرض مسار GET نموذجاً للمستخدم لإنشاء منشور مدونة جديد، بينما يخزن مسار POST منشور المدونة الجديد في قاعدة البيانات.

إنشاء المتحكم

بعد ذلك، لنلق نظرة على متحكم بسيط يتعامل مع الطلبات الواردة لهذه المسارات. سنترك طريقة store فارغة الآن:

namespace App\Http\Controllers;
 
use Illuminate\Http\Request;
use Illuminate\Http\RedirectResponse;
 
class PostController extends Controller
{
    public function create()
    {
        return view('post.create');
    }
 
    public function store(Request $request): RedirectResponse
    {
        // سيكون منطق التحقق هنا
    }
}

كتابة منطق التحقق

الآن نحن مستعدون لملء طريقة store بالمنطق للتحقق من صحة منشور المدونة الجديد. للقيام بذلك، سنستخدم طريقة validate المقدمة من كائن Illuminate\Http\Request:

public function store(Request $request): RedirectResponse
{
    $validated = $request->validate([
        'title' => 'required|unique:posts|max:255',
        'body' => 'required',
    ]);
 
    // منشور المدونة صالح...
    return redirect('/posts');
}

كما ترى، يتم تمرير قواعد التحقق إلى طريقة validate. إذا فشل التحقق، سيتم طرح Illuminate\Validation\ValidationException، وسيتم إرسال استجابة الخطأ المناسبة تلقائياً إلى المستخدم.

عرض أخطاء التحقق

إذاً، ماذا لو لم تجتاز حقول الطلب الوارد قواعد التحقق المحددة؟ سيقوم Laravel تلقائياً بإعادة توجيه المستخدم إلى موقعه السابق وسيتم تمرير جميع أخطاء التحقق ومدخلات الطلب إلى الجلسة. يتم مشاركة متغير $errors مع جميع العروض، مما يتيح لك عرض رسائل الخطأ بسهولة:

<!-- resources/views/post/create.blade.php -->
@if ($errors->any())
    <ul>
        @foreach ($errors->all() as $error)
            <li>{{ $error }}</li>
        @endforeach
    </ul>
@endif

التحقق من خلال طلب النموذج

لسيناريوهات التحقق الأكثر تعقيداً، قد ترغب في إنشاء "طلب نموذج". طلبات النموذج هي فئات طلب مخصصة تغلف منطق التحقق والتفويض الخاص بها:

php artisan make:request StorePostRequest

سيتم وضع فئة طلب النموذج المولدة في دليل app/Http/Requests. كل طلب نموذج له طريقتان: authorize و rules.

تخصيص رسائل الخطأ

كل قاعدة تحقق مدمجة في Laravel لها رسالة خطأ موجودة في ملف lang/en/validation.php في تطبيقك. يمكنك تغيير أو تعديل هذه الرسائل بناءً على احتياجات تطبيقك. على سبيل المثال:

public function messages(): array
{
    return [
        'title.required' => 'العنوان مطلوب',
        'body.required' => 'الرسالة مطلوبة',
    ];
}

تحديد سمات مخصصة

لاستبدال العنصر النائب :attribute في رسائل التحقق بأسماء سمات مخصصة، يمكنك تحديد أسماء مخصصة في طريقة attributes:

public function attributes(): array
{
    return [
        'email' => 'عنوان البريد الإلكتروني',
    ];
}

الخاتمة

يوفر Laravel 11 ميزات تحقق قوية ومرنة تساعد في ضمان سلامة بيانات تطبيقك. من خلال إتقان تقنيات التحقق هذه، يمكنك بناء تطبيقات ويب قوية وموثوقة.

لمزيد من المعلومات التفصيلية، راجع توثيق التحقق الرسمي في Laravel 11.

● الوسوم
#Laravel 11#التحقق من الصحة#تطوير الويب#PHP#Intermediate#15 دقيقة قراءة
● مشاركة
● هل لديك سؤال؟

تحدث مع وكيل نقطة بشأن هذا المقال.

Anis Marrouchi
Anis Marrouchi
Author · noqta
متابعة ↗

● اقرأ التالي

الدليل التفصيلي لتثبيت وهيكلة تطبيقك في Next.js لأداء أمثل
● Tutorial

الدليل التفصيلي لتثبيت وهيكلة تطبيقك في Next.js لأداء أمثل

29 مايو 2024
Astro 5: بناء موقع محتوى فائق السرعة باستخدام هندسة الجُزر
● Tutorial

Astro 5: بناء موقع محتوى فائق السرعة باستخدام هندسة الجُزر

25 فبراير 2026
أتمتة سير العمل مع Zapier وWebhooks في تطبيق Next.js
● Tutorial

أتمتة سير العمل مع Zapier وWebhooks في تطبيق Next.js

19 مايو 2024
نقطة
الشروط والأحكام · سياسة الخصوصية
الخدمات
  • أتمتة الذكاء الاصطناعي
  • وكلاء الذكاء الاصطناعي
  • أتمتة تجربة العملاء
  • Vibe Coding
  • إدارة المشاريع
  • ضمان الجودة
  • تطوير الويب
  • تكامل API
  • تطبيقات الأعمال
  • الصيانة
  • Low-Code/No-Code
الروابط
  • معلومات عنا
  • كيف نعمل؟
  • الأخبار
  • الدروس التعليمية
  • المدونة
  • تواصل معنا
  • الأسئلة الشائعة
  • الموارد
المناطق
  • السعودية
  • الإمارات
  • قطر
  • البحرين
  • عُمان
  • ليبيا
  • تونس
  • الجزائر
  • المغرب
الشركة
  • نقطة، تونس، الهاتف +216 24 309 128
© نقطة. جميع الحقوق محفوظة.