سید حسین رضوی
5 سال پیش توسط سید حسین رضوی مطرح شد
3 پاسخ

بررسی رول ولیدیت یونیک برای ویرایش

با سلام من یک ریکوئست جدید ساختم برای کنترلرم به این صورت

if ($this->method() == 'post'){
            return [
                'fa_name' => 'required',
                'en_name' => 'required',
                'symbol' => 'required|unique:coins',
                'icon' => 'required',
            ];
        }else{
            return [
                'fa_name' => 'required',
                'en_name' => 'required',
                'symbol' => 'required|unique:coins',
            ];
        }

چطوری هنگام ویرایش متوجه بشم که آیا سمبل تغییر کرده یا نه چون اینطوری وقتی آپدیت رو میزنه گیر میده که این قبلا انتخاب شده
اگه بیام رول یونیک رو بردارم شاید به اشتباه از سمبل استفاده بشه که قبلا انتخاب شده
آیا روشی داره که داخل همین ریکوئست عملیات رو انجام بده یا اینکه رول رو از اینجا حذف کنم و داخل تابع اپدید اونجا بررسی کنیم که آیا این سمبل قبلی خودشه یا یک جدید اضافه شده


ثبت پرسش جدید
امین محمدزاده
تخصص : برنامه نویسی وب - Laravel
@amin.webdesign 5 سال پیش آپدیت شد
0

سلام
برای اینکه در ویرایش به متد unique ایراد نده و نگه که این مقدار قبلا در دیتابیس وجود داره باید همون آی دی که میخواید ویرایش بکنید رو در متد یونیک مستثنا کنید. یعنی به اون پارامتر گیر نده که مستلزم اینه که آی دی اون پارامتر رو در متد unique براش بفرستید
در زمان افزودن یه ردیف به دیتابیس که از دستور زیر استفاده میکنید

return ['symbol' => 'required|unique:coins',] 

در ویرایش باید به این صورت باشه:

return ['symbol' => 'required|unique:coins:symbol,'.$item->id]

که اینجا گفتیم توی جدول coins پارامتر symbol مربوط به آی دی ردیف مورد نظرمون رو گیر نده که مقدار متغیر $item در واقع همون ردیفی هست که میخواید توی دیتابیس ویرایش کنید.


سید حسین رضوی
تخصص : برنامه نویس وب و طراح رابط کار...
@hossein.r.1442 5 سال پیش مطرح شد
0

@amin.webdesign
ممنون از پاسخ شما من این ولیدیت رو توی یه کلاس ریکوئست انجام دادم اونجا چطوری آی دی رو بگیرم


امین محمدزاده
تخصص : برنامه نویسی وب - Laravel
@amin.webdesign 5 سال پیش مطرح شد
0

توی متد rules با پارامتر $this->request میتونید به مقادیری که از طریق فرم میفرستید و همچنین داده هایی که توی آدرس هست دسترسی داشته باشید. مثل :

$this->request->get('user_id')

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

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