راکت

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

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 رو برگردونم

ثبت پرسش جدید

پاسخ‌ها

4
رضا پارسیان
رضا پارسیان
@Rp76

تخصص: توسعه دهنده Php , Laravel

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

content-type: application/json

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

رضا
رضا
@rezakarimi376

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

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

سروش نیستانی
سروش نیستانی
@soroush.neyestani.android

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

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

رضا
رضا
@rezakarimi376

@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 برمیگردونه

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

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