Armin Rahmati
2 سال پیش توسط Armin Rahmati مطرح شد
23 پاسخ

اعتبارسنجی

سلام دوستان.
من سه تا جدول دارم: users, deliveries, roles
زمانی که میخوام راننده جدید ایجاد کنم، داخل Request اومدم به صورت زیر تعریف کردم:

public function rules()
    {
        return [
            'user_id' => ['required', 'exists:users,id', 'unique:deliveries,user_id'],
        ];
    }

حالا میخوام یه محدودیت دیگه بذارم که راننده حتما نقشش delivery باشه.
ممنون میشم راهنمایی کنید.


ثبت پرسش جدید
ابوالفضل رجائی نسب
تخصص : برنامه نویس (laravel-backend-p...
@abol313 2 سال پیش آپدیت شد
0

خب

$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;

ابوالفضل رجائی نسب
تخصص : برنامه نویس (laravel-backend-p...
@abol313 2 سال پیش مطرح شد
0

فقط ببخشی میشه بگی مشکل از چی بود ؟


Armin Rahmati
@arminrahmati999 2 سال پیش مطرح شد
0

کاربر شماره دوم من دو تا نقش داشت که یکی از نقشاش راننده بود ولی من فکر کردم نقش راننده نداره، بعد اون کدی که شما فرستادینو من با این کاربر تست کردم و دیدم ثبت شد، بعد با یه کاربر دیگه که نقش راننده داشت زدم دیدم بازم ثبت شد بعد شک کردم که دیگه رفتم دیتابیسو چک کردم و دیدم کاربر دو راننده هم بودِ به خاطر همین.
تشکر فراوان.


ابوالفضل رجائی نسب
تخصص : برنامه نویس (laravel-backend-p...
@abol313 2 سال پیش مطرح شد
0

اللّٰه را شکر

تشکر 😄

ok = حله


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

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