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

برگرداندن ریکوئست به صورت جی سون

سلام من میخوام وقتی ولیدیشن fail میشه یه response به صورت json برگرده
مثل این کد زیر

$validator = Validator::make($request->all(), [
            'title' => 'required'
        ]);

        if ($validator->fails()) {
            return response()->json(['message' => $validator->messages()->first(), 'status' => 'error']);
        }

توی مثال بالا تو کنترلر این کارو انجام دادم
چجوری میتونم توی Request این json رو برگردونم


ثبت پرسش جدید
رضا پارسیان
تخصص : توسعه دهنده Php , Laravel
@Rp76 3 سال پیش مطرح شد
0

سلام
اگر میخوای با js درخواست بدی خودش تشخیص میده validation رو json میده
اگر میخوای با php یا زبان دیگه درخواست بدی باید

content-type: application/json

ست کنی
به این کد ها هم نیاز نیست فقط validate میکنی


رضا
@rezakarimi376 3 سال پیش مطرح شد
0

خب توی ریکوئست ولیدیشن رو انجام میدم
یه متد داره به نام message که پیام رو برمیگردونه
مثلا میخوام همزمان status رو هم به صورت ارور برگردونم
مثل صورت سوال


سروش نیستانی
تخصص : برنامه نویس
@soroush.neyestani.android 3 سال پیش مطرح شد
0

سلام
دو تا راه برای اینکار هست:
۱. در ابتدای کار باید اینکه صفحه json هست رو تعریف کنی بعدش توی کد بازگشتی حتما مدل pretty تحویل بگیری و گرنه کد کلا در هم ریخته در میاد
اگر نیازی هست نمونه کد رو بنویسم کامل
۲. یک شبه صفحه میسازی که هر دفعه باز میشه از دیتابیس کوئری میگیره و شکلی که میخوای بصورت json یا html یا هر چیزی تایپ میکنه و به اصطلاح echo میگیره
اگر نیازی هست نمونه کد این یکی رو هم بنویسم


رضا
@rezakarimi376 3 سال پیش مطرح شد
0

@soroush.neyestani.android
سلام ممنون از توضیحتون
ولی فک کنم منظورم رو اشتباه متوجه شدید
من تو ریکوئست میخوام جیسون برگردونم
منظورم این صفحس

یعنی به جای این کد که تو کنترلر قرار دادم

$validator = Validator::make($request->all(), [
            'title' => 'required'
        ]);

        if ($validator->fails()) {
            return response()->json( ['message'=> $validator->messages()->first(), 'status' => 'error' ] );
        }

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

class ProvinceRequest extends FormRequest
{
    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        return [
            //
            'title'=>'required'
        ];
    }

    public function messages()
    {
        return [
            //
            'title.required' => 'عنوان الزامی است.',
        ];
    }
    public function response(array $errors)
    {
        return new JsonResponse(['error' => $errors]);
    }

    /**
     * Determine if the user is authorized to make this request.
     *
     * @return bool
     */
    public function authorize()
    {
        return true;
    }
}

یه متد پیدا کردم به اسم response درست کار میکنه ولی 422 برمیگردونه


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

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