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

آفلاین
user-avatar
عرفان حشمتی
16 مهر 1399, خواندن در 2 دقیقه

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

@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() و همچنین پیام‌های مربوط به هر زمینه را با درخواست فرم نمایش دهیم.

منبع

چه امتیازی به این مقاله می دید؟
خیلی بد
بد
متوسط
خوب
عالی

دیدگاه‌ها و پرسش‌ها

برای ارسال دیدگاه لازم است، ابتدا وارد سایت شوید.

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

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

آفلاین
user-avatar
عرفان حشمتی @heshmati74
مهندس معماری سیستم های کامپیوتری، طراح و توسعه دهنده وب سایت
دنبال کردن

گفتگو‌ برنامه نویسان

بخشی برای حل مشکلات برنامه‌نویسی و مباحث پیرامون آن وارد شو