سلام دوستان.
من سه تا جدول دارم: users, deliveries, roles
زمانی که میخوام راننده جدید ایجاد کنم، داخل Request اومدم به صورت زیر تعریف کردم:
public function rules()
{
return [
'user_id' => ['required', 'exists:users,id', 'unique:deliveries,user_id'],
];
}
حالا میخوام یه محدودیت دیگه بذارم که راننده حتما نقشش delivery باشه.
ممنون میشم راهنمایی کنید.
خب
$this->user()
فقط کاربری رو برمی گردونه که توی همون درخواست(کلاینت) همون زمان که درخواست و می فرسته لاگین شده و ربطی به userid داخل پارامترای ورودی نداره
پس از این کد استفاده کن
'user_id' => [
'required',
'exists:users,id',
'unique:deliveries,user_id',
function($attribute, $value, $fail){
if( User::find($value)->roles->pluck('name')->doesntContain('delivery') )
$fail('The user has not the `delivery` role !'); //The error message
}
]
البته بالای کد ها هم بزن مدلو وارد کن:
use App\Models\User;
کاربر شماره دوم من دو تا نقش داشت که یکی از نقشاش راننده بود ولی من فکر کردم نقش راننده نداره، بعد اون کدی که شما فرستادینو من با این کاربر تست کردم و دیدم ثبت شد، بعد با یه کاربر دیگه که نقش راننده داشت زدم دیدم بازم ثبت شد بعد شک کردم که دیگه رفتم دیتابیسو چک کردم و دیدم کاربر دو راننده هم بودِ به خاطر همین.
تشکر فراوان.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟