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

تعذر عرض أخطاء التحقق في Laravel

محمد لارافيل

السؤال

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

@dump(Session::has('status')) @dump($errors-\>any())

 دالة تسجيل الدخول

public function login(Request $request)
    {
        $credentials = $request->validate([
            'email' => 'email|max:90|required',
            'password' => 'required|min:6',
        ]);

        if (Auth::attempt($credentials, true)) {
            $accessToken = auth()->user()->createToken('authToken')->plainTextToken;
            return redirect('/home')->withCookie('auth_token', $accessToken);
        } else {
            $notification = 'L\'email ou le mot de passe est incorrecte';
            return back()->with('status', $notification);
        }
    }

form

<form action="{{ url('/authentification') }}" class="request-form ftco-animate bg-primary"method="POST"> @csrf
       <h2>Connexion</h2>

        @if ($errors->any())
            <div class="alert alert-danger">
                    <ul>
                       @foreach ($errors->all() as $error)
                           <li>{{ $error }}</li>
                       @endforeach
                     </ul>
           </div>
           @endif
        @if (Session::has('status'))
           <div class="alert alert-danger">
               {{ Session::get('status') }}
           </div>
        @endif
        <div class="form-group">
         <label for="" class="label">Email</label>
         <input type="text" class="form-control" placeholder="Email" name="email">
        </div>
        <div class="form-group mr-2">
        <label for="" class="label">Mot de passe</label>
           <input type="password" class="form-control" placeholder="**********" name="password">
     </div>
<div class="form-group">
      <input type="submit" value="Connexion" class="btn btn-secondary py-3 px-4">
       <a href="{{ url('/register') }}" class="text-center" style="color: white;">Pas encore de compte ?</a>
</div>
</form>

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

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

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

public function login(Request $request)
{
    $validator = Validator::make($request->all(), [
        'email' => 'email|max:90|required',
        'password' => 'required|min:6',
    ]);

    if ($validator->fails()) {
        return redirect('login')->withErrors($validator)->withInput();
    }

    if (Auth::attempt($request->only('email', 'password'), true)) {
        $accessToken = auth()->user()->createToken('authToken')->plainTextToken;
        return redirect('/home')->withCookie('auth_token', $accessToken);
    } else {
        $notification = 'L\'email ou le mot de passe est incorrecte';
        return back()->with('status', $notification);
    }
}

 وأخيرا  لعرض أخطاء التحقق أضف هذا 
 

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

 ولعرض أخطاء بيانات المستخدم بعد التحقق منها :
 

    @if (Session::has('status'))
        <div class="alert alert-danger">
            {{ Session::get('status') }}
        </div>
    @endif

أتمنى أكون أفدتك 

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...