اذهب إلى المحتوى

السؤال

نشر

في الصور المرفقة يقوم بالتحقق من الحقول اذا كانت فارغة ف يقوم ب اخفاء جميع الحقول مع اظهار رسالة الخطأ لكن احتاج ان تكون عمليات التحقق بشكل منظم اكثر من ذلك اي يعطي رسالة الخطأ اسفل ال input مع عدم اخفاء الفورم 

blade.png

vaild.png

بتاريخ منذ ساعة مضت قال Osama Kha:

في الصور المرفقة يقوم بالتحقق من الحقول اذا كانت فارغة ف يقوم ب اخفاء جميع الحقول مع اظهار رسالة الخطأ لكن احتاج ان تكون عمليات التحقق بشكل منظم اكثر من ذلك اي يعطي رسالة الخطأ اسفل ال input مع عدم اخفاء الفورم 

blade.png

vaild.png

وحتى عند ظهور الرسالة والقيام ب اعادة ادخال جميع الحقول تبقى رسالة الخطأ

بتاريخ منذ ساعة مضت قال Osama Kha:

في الصور المرفقة يقوم بالتحقق من الحقول اذا كانت فارغة ف يقوم ب اخفاء جميع الحقول مع اظهار رسالة الخطأ لكن احتاج ان تكون عمليات التحقق بشكل منظم اكثر من ذلك اي يعطي رسالة الخطأ اسفل ال input مع عدم اخفاء الفورم 

blade.png

vaild.png

وحتى عند ظهور الرسالة والقيام ب اعادة ادخال جميع الحقول تبقى رسالة الخطأ

هكذا يظهر الخطأ 

error.png

Recommended Posts

  • 0
نشر

باستطاعتك استخدام ميزة الـ Validation المتوفرة في Laravel لتحقق من صحة الحقول وتعيين رسائل الخطأ المناسبة لكل حقل بشكل منظم.

من خلال استخدام ملف التحقق (validation) الموجود في المسار app/Http/Requests لتحديد قواعد التحقق لكل حقل، ثم استخدام هذا الملف لتحقق من صحة الحقول وعرض رسائل الخطأ الخاصة بكل حقل.

فمثلاً، إذا كان لديك حقل "name" في نموذج التسجيل، فيمكنك إنشاء ملف التحقق التالي:

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

class RegisterRequest extends FormRequest
{
    public function rules()
    {
        return [
            'name' => 'required|min:3|max:255',
            'email' => 'required|email|unique:users',
            'password' => 'required|confirmed|min:6',
        ];
    }

    public function messages()
    {
        return [
            'name.required' => 'يجب أن تدخل اسمك.',
            'name.min' => 'يجب أن يحتوي الاسم على 3 أحرف على الأقل.',
            'name.max' => 'يجب أن يحتوي الاسم على 255 حرفًا كحد أقصى.',
            'email.required' => 'يجب أن تدخل عنوان بريدك الإلكتروني.',
            'email.email' => 'يجب أن يكون عنوان بريدك الإلكتروني صالحًا.',
            'email.unique' => 'عنوان البريد الإلكتروني هذا مستخدم بالفعل.',
            'password.required' => 'يجب أن تدخل كلمة مرور.',
            'password.min' => 'يجب أن تحتوي كلمة المرور على 6 أحرف على الأقل.',
            'password.confirmed' => 'تأكيد كلمة المرور غير متطابق.',
        ];
    }
}

و في المثال، تم تعريف قواعد التحقق لحقول الاسم والبريد الإلكتروني وكلمة المرور، وتم تعريف رسائل الخطأ الخاصة بكل حقل.

ثم يمكنك استخدام ملف التحقق في نموذج التسجيل الخاص بك كالتالي:

public function register(Request $request)
{
    $validatedData = $request->validate([
        'name' => 'required|max:255',
        'email' => 'required|email|unique:users|max:255',
        'password' => 'required|min:6|max:255',
    ]);

    // اكمل هنا بالكود الذي تريده
}

بعد ذلك، عليك باستخدام خاصية "error message bag" في Laravel لعرض رسائل الخطأ وتعليقها على حقول الإدخال المحددة.

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

كمثال، استخدم الكود التالي في ملف نموذج التسجيل:

@if ($errors->any())
    <div class="alert alert-danger">
        <ul>
            @foreach ($errors->all() as $error)
                <li>{{ $error }}</li>
            @endforeach
        </ul>
    </div>
@endif

<div class="form-group">
    <label for="name">Name</label>
    <input type="text" class="form-control" id="name" name="name" placeholder="Enter your name">
    @error('name')
        <div class="alert alert-danger">{{ $message }}</div>
    @enderror
</div>

<div class="form-group">
    <label for="email">Email</label>
    <input type="email" class="form-control" id="email" name="email" placeholder="Enter your email">
    @error('email')
        <div class="alert alert-danger">{{ $message }}</div>
    @enderror
</div>

<div class="form-group">
    <label for="password">Password</label>
    <input type="password" class="form-control" id="password" name="password" placeholder="Enter your password">
    @error('password')
        <div class="alert alert-danger">{{ $message }}</div>
    @enderror
</div>

هنا، يتم عرض رسالة الخطأ الشاملة في الجزء العلوي من النموذج باستخدام دالة $errors->any()، وتعرض رسالة الخطأ الفردية لكل حقل إدخال بشكل منفصل باستخدام @error('field_name') و $message، حيث يتم استبدال 'field_name' بالاسم الحقيقي لحقل الإدخال المحدد.

  • 0
نشر

تم عمل جميع الخطوات المذكورة لكن بقية رسائل الخطأ الافتراضية بالاضافة الى عند اعادة ادخال البيانات بالشكل الصحيح لايقوم ب اضافة المحتوى بل تظهر رسائل الخطأ نسفها

بتاريخ 1 ساعة قال Mustafa Suleiman:

باستطاعتك استخدام ميزة الـ Validation المتوفرة في Laravel لتحقق من صحة الحقول وتعيين رسائل الخطأ المناسبة لكل حقل بشكل منظم.

من خلال استخدام ملف التحقق (validation) الموجود في المسار app/Http/Requests لتحديد قواعد التحقق لكل حقل، ثم استخدام هذا الملف لتحقق من صحة الحقول وعرض رسائل الخطأ الخاصة بكل حقل.

فمثلاً، إذا كان لديك حقل "name" في نموذج التسجيل، فيمكنك إنشاء ملف التحقق التالي:

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

class RegisterRequest extends FormRequest
{
    public function rules()
    {
        return [
            'name' => 'required|min:3|max:255',
            'email' => 'required|email|unique:users',
            'password' => 'required|confirmed|min:6',
        ];
    }

    public function messages()
    {
        return [
            'name.required' => 'يجب أن تدخل اسمك.',
            'name.min' => 'يجب أن يحتوي الاسم على 3 أحرف على الأقل.',
            'name.max' => 'يجب أن يحتوي الاسم على 255 حرفًا كحد أقصى.',
            'email.required' => 'يجب أن تدخل عنوان بريدك الإلكتروني.',
            'email.email' => 'يجب أن يكون عنوان بريدك الإلكتروني صالحًا.',
            'email.unique' => 'عنوان البريد الإلكتروني هذا مستخدم بالفعل.',
            'password.required' => 'يجب أن تدخل كلمة مرور.',
            'password.min' => 'يجب أن تحتوي كلمة المرور على 6 أحرف على الأقل.',
            'password.confirmed' => 'تأكيد كلمة المرور غير متطابق.',
        ];
    }
}

و في المثال، تم تعريف قواعد التحقق لحقول الاسم والبريد الإلكتروني وكلمة المرور، وتم تعريف رسائل الخطأ الخاصة بكل حقل.

ثم يمكنك استخدام ملف التحقق في نموذج التسجيل الخاص بك كالتالي:

public function register(Request $request)
{
    $validatedData = $request->validate([
        'name' => 'required|max:255',
        'email' => 'required|email|unique:users|max:255',
        'password' => 'required|min:6|max:255',
    ]);

    // اكمل هنا بالكود الذي تريده
}

بعد ذلك، عليك باستخدام خاصية "error message bag" في Laravel لعرض رسائل الخطأ وتعليقها على حقول الإدخال المحددة.

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

كمثال، استخدم الكود التالي في ملف نموذج التسجيل:

@if ($errors->any())
    <div class="alert alert-danger">
        <ul>
            @foreach ($errors->all() as $error)
                <li>{{ $error }}</li>
            @endforeach
        </ul>
    </div>
@endif

<div class="form-group">
    <label for="name">Name</label>
    <input type="text" class="form-control" id="name" name="name" placeholder="Enter your name">
    @error('name')
        <div class="alert alert-danger">{{ $message }}</div>
    @enderror
</div>

<div class="form-group">
    <label for="email">Email</label>
    <input type="email" class="form-control" id="email" name="email" placeholder="Enter your email">
    @error('email')
        <div class="alert alert-danger">{{ $message }}</div>
    @enderror
</div>

<div class="form-group">
    <label for="password">Password</label>
    <input type="password" class="form-control" id="password" name="password" placeholder="Enter your password">
    @error('password')
        <div class="alert alert-danger">{{ $message }}</div>
    @enderror
</div>

هنا، يتم عرض رسالة الخطأ الشاملة في الجزء العلوي من النموذج باستخدام دالة $errors->any()، وتعرض رسالة الخطأ الفردية لكل حقل إدخال بشكل منفصل باستخدام @error('field_name') و $message، حيث يتم استبدال 'field_name' بالاسم الحقيقي لحقل الإدخال المحدد.

هل الطريقة صحيحة لم يتغير اي شيء عن سابقه 

co2.png

er2.png

  • 1
نشر
بتاريخ 13 ساعة قال Osama Kha:

تم عمل جميع الخطوات المذكورة لكن بقية رسائل الخطأ الافتراضية بالاضافة الى عند اعادة ادخال البيانات بالشكل الصحيح لايقوم ب اضافة المحتوى بل تظهر رسائل الخطأ نسفها

هل الطريقة صحيحة لم يتغير اي شيء عن سابقه 

co2.png

er2.png

ان كانت الحقول لديك يتم تصريح أسماءها بـ title و details و img_path فيجب بطبيعة الحال التحقق منها باعتبار هاته الاسماء، فبدل ان يكون:

$request->validate([
    'Ads_Title' => 'required',
    'Ads_Details' => 'required',
    'Ads_Img_Path' => 'required'
])

يجب ان يكون:

$request->validate([
    'title' => 'required',
    'details' => 'required',
    'img_path' => 'required'
])

وإلا فإنه يجب عليك تصريح الاسماء المتحقق منها في توليد الحقول:

{! Form::text('Ads_Title' ,null, ['placeholder' => 'english title']) !}

 

  • 0
نشر
بتاريخ 4 ساعة قال Adnane Kadri:

ان كانت الحقول لديك يتم تصريح أسماءها بـ title و details و img_path فيجب بطبيعة الحال التحقق منها باعتبار هاته الاسماء، فبدل ان يكون:

$request->validate([
    'Ads_Title' => 'required',
    'Ads_Details' => 'required',
    'Ads_Img_Path' => 'required'
])

يجب ان يكون:

$request->validate([
    'title' => 'required',
    'details' => 'required',
    'img_path' => 'required'
])

وإلا فإنه يجب عليك تصريح الاسماء المتحقق منها في توليد الحقول:

{! Form::text('Ads_Title' ,null, ['placeholder' => 'english title']) !}

 

شكرا لك اخي الكريم تمت عملية التحقق بنجاح يوجد سؤال اخر من فضلك هل يوجد تابع لمنع المستخدم من ادخال محارف عربية في حقول انكليزية والعكس ايضا استخدم مكتبة الترجمة المقدمة من لارافيل spatie/laravel-translatable هناك حقلين الاولى باللغة العربية والثاني باللغة الانكليزية احتاج الى منعه من الادخال في حالة كان الحقل عربي يدخل عربي ......

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...