سلام توی عکس زیر من تایپ ورودیه image رو string گذاشتم ولی وقتی 4 وارد میکنم بدون مشکل توی دیتابیس ثبت میشه
حتی توی mutation هم ولیدیشن رو گذاشتم ولی عمل نمیکنه!
توی mutation برای price مقدار min:4 هم گذاشتم ولی اونم عمل نمیکنه اصلا!
کسی دلیلشو میدونه؟
و سوال بعدیم اینه که اگر بخوایم عنوان یه دوره رو عوض کنیم ولیدیشن باید به چه صورتی باشه؟
فرض کنیم عنوان ها یونیک باشند، برای اپدیت اگر باز unique بزاریم توی ولیدیشن، اگر یوزر نخواد عنوان رو عوض کنه ارور میده که این عنوان قبلا انتخاب شده در صورتی که عنوان همین دوره هست! اگر unique نزاریم خیلی راحت میتونه عنوان یه دوره دیگه رو برای دوره خودش بزاره !
برای این مشکل شما چی میکنید؟
امدوارم منظورمو خوب توضیح داده باشم
با سلام . @miladparsi1070
راجب GraphQl متاسفانه اطلاعاتی ندارم . احتمالا این مورد ولیدیشن شما به بحث Api ربط داره و شاید ورژن بندی که قطعا استاتید راهنماییتون خواهند کرد (با توجه به مشکلات مشابه شما که توی سایت ها مطرح شده ) شاید هم لاراول بین اعداد و استرینگ فرق قائل میشه 🤨
ولی راجب بحث ولیدیشن برای آپدیت شما باید به لاراول بفهمونید که زمان آپدیت باید سطر جاری دیتابیس رو نادیده بگیره. اینطوری تایتلتون که یونیک هست رو فقط با تایتل بقیه سطر های دیتابیس چک میکنه و همون دوره جاری رو حساب نمیکنه . چطوری ؟ بصورت زیر :
use Illuminate\Validation\Rule;
Validator::make($data, [
'title' => [
'required',
'min:5',
Rule::unique('courses')->ignore($course->id),
],
]);
یا برای اینکه با کد خودتون همخوانی بیشتری داشته باشه :
'title' => 'required|min:5|unique:courses,title,'.$course->id
درواقع میگه یونیک باشد از جدول کورس ها ، ستون تایتل ، چه سطری رو اصطلاحا ignore کند ؟ سطری با آیدی course->id$
موفق باشید🌹
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟