پیام‌های خطا در مقابل پیام‌های تأیید اعتبار در Laravel Blade
ﺯﻣﺎﻥ ﻣﻄﺎﻟﻌﻪ: 2 دقیقه

پیام‌های خطا در مقابل پیام‌های تأیید اعتبار در Laravel Blade

می‌خواهیم پیام‌های خطا را در بالای صفحه نشان دهیم و انجام آن با لاراول و بلید بسیار آسان است:

@if(!empty($errors->first()))
    <div class="row col-lg-12">
        <div class="alert alert-danger">
            <span>{{ $errors->first() }}</span>
        </div>
    </div>
@endif

هر زمان که با خطایی دوباره کاربر را به سایت خود هدایت کنیم، می‌دانیم که صفحه به دلیل الگوی پایه قادر است پیام را به درستی در بالا نشان دهد.

با این حال، اگر این کار را انجام دهید و سپس فرم اعتبار سنجی را تنظیم کنید، فقط اولین پیام خطا را در بالای صفحه مشاهده خواهید کرد. ما می‌توانیم همه پیام‌ها را در متغیر خطاها تعریف کنیم، اما به جای هر فیلد باز هم خطاهای فرم را در بالای صفحه نشان می‌دهد. برای جلوگیری از این امر، می‌توانیم از بسته‌های پیام در درخواست فرم لاراول استفاده کنیم.

پیام‌های اعتبار سنجی خود را روی یک بسته پیام جداگانه تنظیم کنید

1 - درخواست فرم پایه

یک BaseFormRequest ایجاد کنید و آن را توسط فرم‌های خود گسترش دهید.

use Illuminate\Foundation\Http\FormRequest;
class BaseFormRequest extends FormRequest {

    protected $errorBag = 'form';

}

2 - یک کامپوننت بلید برای پیام‌های هر فیلد تنظیم کنید

در اینجا ما از ویژگی $errors->form برای مطابقت با مقدار errorBag تنظیم شده در مرحله 1 استفاده می‌کنیم. ما همچنین از یک متغیر به نام field استفاده می‌کنیم و هر زمان که از این کامپوننت استفاده کنیم باید تنظیم شود.

@if($errors->form->first($field))
    {!! $errors->form->first($field, '<p><span class="text-warning">:message</span></p>') !!}
@endif

3 – از کامپوننت در زیر فیلدها استفاده کنید

هنگام تعریف فیلد در فرم خود، حتما کامپوننت ایجاد شده در مرحله 2 را وارد کنید و متغیر فیلد را با همان نام زمینه خود به آن بدهید.

<div class="form-group">
    <label>{{ __('What is the subject of this ticket?') }}</label>
    <input type="text" name="title" class="form-control">
    @include('layouts.components.alert.field', ['field' => 'title'])
</div>

نتیجه گیری

حال وقتی قانون درخواست فرم ناموفق بود، بسته پیام را روی فرم تنظیم می‌کند. اکنون می‌توانیم خطاهای نشان داده شده در بالا را با استفاده از روش withErrors() و همچنین پیام‌های مربوط به هر زمینه را با درخواست فرم نمایش دهیم.

منبع

چه امتیازی برای این مقاله میدهید؟

خیلی بد
بد
متوسط
خوب
عالی
در انتظار ثبت رای

/@erfanheshmati
عرفان حشمتی
Full-Stack Web Developer

کارشناس معماری سیستم های کامپیوتری، طراح و توسعه دهنده وب سایت، تولیدکننده محتوا

دیدگاه و پرسش

برای ارسال دیدگاه لازم است وارد شده یا ثبت‌نام کنید ورود یا ثبت‌نام

در حال دریافت نظرات از سرور، لطفا منتظر بمانید

در حال دریافت نظرات از سرور، لطفا منتظر بمانید