راکت

ولیدیشن برای Key آرایه

3 پاسخ

سلام من یه ریکوئست JSON به صورت زیر دارم :

{
    "PaymentMethods": [
        {
            "IRR": [
                "mellat",
                "saman"
            ]
        },
        {
            "USD": [
                "Paypal",
                "stribe"
            ]
        },
        {
            "ERU": [
                "Paypal",
                "stribe"
            ]
        }
    ]
}

میخوام چک کنم که کاربر فقط بتونه مقادیر ["IRR", "USD", "ERU"] رو وارد کنه
توی لاراول باید چه ولیدیشنی براش بنویسم ؟

Javad Ezaz
Javad Ezaz
@sjavadez
ثبت پرسش جدید

پاسخ‌ها

3
حسین شیری نژاد
حسین شیری نژاد
@hosseinshirinegad98

تخصص: programmer

سلام
تا حالا از کلاس 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'.
البته پیشنهاد من به شما این است که برای مورد خاص خودتون یه رول شخصی در لاراول ایجاد کنید که این برای کار شما بهتر هست و در اون رول رشته جیسان خودتونو تبدیل به آرایه کنید و مقادیرشو دونه دونه چک کنید ببینید همون هایی هستند که انتظار میره.

بهزاد عزیزان
بهزاد عزیزان
@behzad.azizan

سلام
ولیدیشن باید کامل و جمع و بدون باگ نوشته بشه . اگه نگیم مهمترین ولی حتما یکی از مهمترین لایه های امنیتی پروژه ی ما ولیدیشن ها هستند پس واقعا تمام تلاشتون رو بکنید که توی ولیدیت کردن ورودیهاتون هیچ باگی نداشته باشه

به نظرم برای این بخش حتما یک کاستوم ولیدیشن بسازید چرا که هم باید key ولیدیت بشه و هم values . مثلا نباید بتونه مقدار زیر رو وارد کنه :

{
            "IRR": [
                "Paypal"
            ]
        }

چون Paypal درگاه ایرانی نیست و نباید کاربر بتونه اون رو تو آرایه ی IRR بفرسته

شاید پاسخ شما همین‌جا باشد

محمدجواد صیدی
محمدجواد صیدی
@mrjavadseydi

تخصص: برنامه نویس وب

سلام
باید یک کاستوم ولیدیشن بسازید
https://laravel.com/docs/8.x/validation#using-rule-objects

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

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