یلدا ادامه داره... ❤️ ۴۰ درصد تخفیف همه دوره‌ها

استفاده از تخفیف‌ها
ثانیه
دقیقه
ساعت
روز
Javad Ezaz
4 سال پیش توسط Javad Ezaz مطرح شد
3 پاسخ

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

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

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

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


ثبت پرسش جدید
حسین شیری نژاد
تخصص : programmer
@hosseinshirinegad98 4 سال پیش مطرح شد
0

سلام
تا حالا از کلاس 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 4 سال پیش مطرح شد
0

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

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

{
            "IRR": [
                "Paypal"
            ]
        }

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


محمدجواد صیدی
تخصص : برنامه نویس وب
@mrjavadseydi 4 سال پیش مطرح شد
0

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


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

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