سلام دوستان خسته نباشید
من ی فرم دارم واسه ثبت کاربر میخام همون جا که کاربرا ثبت کردم نقش هم بهش بدم..بین جدول نقشها و کاربرها رابطه چند به چند برقراره.مشکلم توی اعتبار سنجیه ببینید من فیلد نقشها را 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);
}
راه حلش چیه؟
فیلد نقشها را nullable تعریف کن..
و پس از ساخت یوزر چک کن، اگر نقشی انتخاب شده بود .. attach اش کن
چون در برخی موارد ما اصلا نمیخواهیم نقشی به کاربر بدیم
$user->save();
if ($request->has('role'))
{
$user->roles()->attach($request->role);
}
@ali.bayat
ممنون.حالا اگه خواستم حتما نقش بدم چی؟راهی نداره به validation فهموند اول attache کن بعد اعتبار سنجی کن؟
معمولا اولین مرحله ای که داخل متدها store و update اتفاق میفته، اعتبارسنجی هست
چرا میتونی توی هر مرحله که دوست داری اعتبار سنجی کنی ولی ممکنه یکپارچگی داده ها رو از دست بدی
این یه نکته و نکته دیگه اینکه بالاخره باید یوزری وجود داشته باشه که شما بهش نقش رو بدی
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟