سلام
من توی متد rules توی کاستوم ولیدشنی که نوشتم اینو ولیدشنارو دارم:
return [
'field1' => ['required',new checkHasFilledForm()],
'field2' => 'required',
'field3' => 'required',
....
]]
میخوام وقتی ولیدیشن فیلد1 fail شد دیگه بقیه فیلدا ولیدیت نشن! و برگرده صفحه قبل و ارور همون فیلد1 رو فقط نشون بده
چی باید بکنم؟؟؟
bail کار من رو راه نمیندازه چوت بقیه شرط های فیلد رو از کار میندازه
در صورتی که من میخام وقتی یک فیلد به ارور خورد دیگه بقیه فیلد ها هم ولیدیت نشن
حداقل من راهی براش نمی شناسم .
فکر کنم باید به صورت دستی پیاده سازی کنید .
اما بهتره بقیه دوستان هم نظر بدن ...
سلام
شاید این راه عملی باشه که تنها یک rule کاستوم بسازید و همه attribute ها رو به اون پاس بدید و مکانیزمی که میخواهید پیاده کنید توی passes مطابق نیاز خودتون عملیاتی کنید مثلا با ایجاد flag در شروط بررسی یا استفاده ازbreak در switch بررسی رو متوقف کنید.
اگر از لاراول 8 استفاده میکنید برای این کار یه متد جدید معرفی شده
use Illuminate\Support\Facades\Validator;
$validator = Validator::make($request->all(), [
// your validation rules
])->stopOnFirstFailure(true);
$validator->validate();
use Illuminate\Support\Facades\Validator;
$validator = Validator::make($request->all(), [
'field1' => ['required',new checkHasFilledForm()],
'field2' => ['required'],
'field3' => ['required'],
])->stopOnFirstFailure(true);
$validator->validate();
شک دارم دقیقا متوجه منظورتون از custom validation شده باشم، میخوایید همه این فیلد ها در یک rule داخل یک custom vlaidation rule بررسی بشن؟
چون تا جایی که تو ذهنمه custom validation باید boolean برگردونه، یعنی اون آرایه ای که تو return نوشید مقدار درست بازگشتی rule نمیتونه باشه
@mehranmarandi90
نه من خودم کلاس ولیدیشن ساختم. این کلاس یک فانکسنه rules داره که یه ارایه شبیه ارایه ای که بالا گذاشتم رو برمیگردونه.
توی این فانکشن میخام همچین کاری کنم
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟