راکت

Validationدر لاراول

3 پاسخ

سلام دوستان خسته نباشید
من ی فرم دارم واسه ثبت کاربر میخام همون جا که کاربرا ثبت کردم نقش هم بهش بدم..بین جدول نقشها و کاربرها رابطه چند به چند برقراره.مشکلم توی اعتبار سنجیه ببینید من فیلد نقشها را required تعریف کردم اما حتی اگه نقش هم واسه کاربر وارد کنم بازم خطای اعتبار سنجی میده چون اول کاربرsave میشه و دنباله نقشها میگرده و خطا رخ میده و بعد از save شدن کاربر نقشها attache میشن
این کدم

public function store(Request $request)
 {
   $user=new User;
   $user->name=$request->name;
   $user->email=$request->email;
   $user->password=bcrypt($request->password);
   $user->status=$request->status;
   $user->save();
   $user->roles()->attach($request->role);
 }

راه حلش چیه؟

ثبت پرسش جدید

پاسخ‌ها

3
علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

فیلد نقشها را nullable تعریف کن..
و پس از ساخت یوزر چک کن، اگر نقشی انتخاب شده بود .. attach اش کن
چون در برخی موارد ما اصلا نمیخواهیم نقشی به کاربر بدیم

$user->save();
if ($request->has('role'))
{
    $user->roles()->attach($request->role);
}
محمد میرزاخانی
محمد میرزاخانی
@mirzamohammad.com

@ali.bayat
ممنون.حالا اگه خواستم حتما نقش بدم چی؟راهی نداره به validation فهموند اول attache کن بعد اعتبار سنجی کن؟

شاید پاسخ شما همین‌جا باشد

علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

معمولا اولین مرحله ای که داخل متدها store و update اتفاق میفته، اعتبارسنجی هست
چرا میتونی توی هر مرحله که دوست داری اعتبار سنجی کنی ولی ممکنه یکپارچگی داده ها رو از دست بدی

این یه نکته و نکته دیگه اینکه بالاخره باید یوزری وجود داشته باشه که شما بهش نقش رو بدی

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

ورود یا ثبت‌نام