در این مطلب میخواهیم نکتهای در مورد لاراول را بررسی کنیم. هر چند که در صفحه مستندات لاراول هم توضیح داده شده اما میخواهیم در اینجا آن را نشان دهیم.
تصور کنید چندین فرم در یک صفحه داریم. به عنوان مثال یک فرم تماس و یک فرم عضویت در خبرنامه. هر دوی این فرمها یک فیلد email دارند. بنابراین از کجا بفهمیم کدام فیلد ایمیل تایید نشده و باید پیغام خطا نشان دهد؟
استفاده از ErrorBagها
اگر از FormRequests
استفاده می کنید، کار آسانتر میشود. میتوانید یک ErrorBag
سفارشی برای آن FormRequest
به خصوص تعریف کنید. ببینید:
ContactFormRequest.php
use Illuminate\Foundation\Http\FormRequest; class ContactFormRequest extends FormRequest { protected $errorBag = 'contactForm'; }
NewsletterFormRequest.php
use Illuminate\Foundation\Http\FormRequest; class NewsletterFormRequest extends FormRequest { protected $errorBag = 'newsletterForm'; }
احتمالا قبلا از روش زیر در فایل blade خود استفاده کردهاید:
{{ $errors->first('email') }}
این کد از ErrorBag
پیشفرض استفاده میکند. اما در وضعیتی که ما داریم باید آن را با ErrorBag
سفارشی خودمان جایگزین کنیم. جهت دسترسی به آن، نحوه نگارش کدها کمی تغییر میکند. به این صورت:
{{ $errors->contactForm->first('email') }} {{ $errors->newsletterForm->first('email') }}
امیدوارم این مطلب برایتان مفید بوده باشد.
منبع:
Multiple forms with same input names on one page