سلام من یه ریکوئست JSON به صورت زیر دارم :
{
"PaymentMethods": [
{
"IRR": [
"mellat",
"saman"
]
},
{
"USD": [
"Paypal",
"stribe"
]
},
{
"ERU": [
"Paypal",
"stribe"
]
}
]
}
میخوام چک کنم که کاربر فقط بتونه مقادیر ["IRR", "USD", "ERU"] رو وارد کنه
توی لاراول باید چه ولیدیشنی براش بنویسم ؟
سلام
تا حالا از کلاس Rule استفاده کردی شاید کارتو بتونه راه بندازه. یعنی یه جورایی باید از این کلاس برای اعتبار سنجیت استفاده کنی
یه کد نمونه از سایت لاراول بهت میدم.
use Illuminate\Support\Facades\Validator;
use Illuminate\Validation\Rule;
Validator::make($data, [
'zones' => [
'required',
Rule::in(['first-zone', 'second-zone']),
],
]);
فیلد zones باید مقدارش یا 'first-zone' باشه یا 'second-zone'.
البته پیشنهاد من به شما این است که برای مورد خاص خودتون یه رول شخصی در لاراول ایجاد کنید که این برای کار شما بهتر هست و در اون رول رشته جیسان خودتونو تبدیل به آرایه کنید و مقادیرشو دونه دونه چک کنید ببینید همون هایی هستند که انتظار میره.
سلام
ولیدیشن باید کامل و جمع و بدون باگ نوشته بشه . اگه نگیم مهمترین ولی حتما یکی از مهمترین لایه های امنیتی پروژه ی ما ولیدیشن ها هستند پس واقعا تمام تلاشتون رو بکنید که توی ولیدیت کردن ورودیهاتون هیچ باگی نداشته باشه
به نظرم برای این بخش حتما یک کاستوم ولیدیشن بسازید چرا که هم باید key ولیدیت بشه و هم values . مثلا نباید بتونه مقدار زیر رو وارد کنه :
{
"IRR": [
"Paypal"
]
}
چون Paypal درگاه ایرانی نیست و نباید کاربر بتونه اون رو تو آرایه ی IRR بفرسته
سلام
باید یک کاستوم ولیدیشن بسازید
https://laravel.com/docs/8.x/validation#using-rule-objects
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟