第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用表單請求時 Laravel 的“給定數(shù)據(jù)無效”

使用表單請求時 Laravel 的“給定數(shù)據(jù)無效”

PHP
郎朗坤 2021-06-17 10:05:16
所以我有一個包含驗證規(guī)則和一些消息的表單請求。這是我在控制器中的函數(shù)(通過 vue.axios 調(diào)用)public function store(TaskFormRequest $request, TaskService $service): JsonResponse{    $data = $request->validated();    if (!$task = $service->create($data)) {        return JsonResponse::create(['message' => __('Can\'t create Task')], 400);    }    return JsonResponse::create(        [            'task_id' => $task->id,            'message' => __('Task was successfully added.'),        ]    );}它工作正常,除了當數(shù)據(jù)未驗證時調(diào)用時刻存儲(并且 $request 被視為 TaskFormRequest 實例),除了來自表單的錯誤消息外,它還返回“給定的數(shù)據(jù)無效”JsonResponse。這很好,但消息本身深埋在 Vendor 中,我無法對其應(yīng)用任何翻譯,否則會很麻煩。這是我的表單請求:public function authorize(): bool{    return $this->user()->role === 'administrator';}public function rules(): array{    return [        'subject' => 'required',        'date' => 'nullable|date_format:Y-m-s',        'user' => 'nullable|exists:users,id',        'task_list_id' => 'required|exists:task_lists,id',        'privacy' => 'array',    ];}public function messages() {    return [        'subject.required' => __("Task name is empty")    ];}我想一起停止這個回復,只留下表單中的錯誤。或者至少自定義它。編輯:我認為問題是請求是空的?如果我null在store函數(shù)的參數(shù)中輸入默認值,我可以檢查空的 $request 并返回一個 JsonResponse,但它不會通過正常的驗證過程。
查看完整描述

3 回答

?
三國紛爭

TA貢獻1804條經(jīng)驗 獲得超7個贊

我也遇到了同樣的問題。如果您的驗證代碼在 try 塊中,您將收到“給定的數(shù)據(jù)無效”錯誤。從 try 塊中刪除它,您將獲得 Laravel 給出的正確錯誤響應(yīng)。


查看完整回答
反對 回復 2021-06-19
?
湖上湖

TA貢獻2003條經(jīng)驗 獲得超2個贊

當你刪除你的messages()功能時會發(fā)生什么?

date_format:Y-m-s好像錯了,不應(yīng)該date_format:Y-m-d嗎?)


查看完整回答
反對 回復 2021-06-19
?
呼喚遠方

TA貢獻1856條經(jīng)驗 獲得超11個贊

驗證器拋出一個Illuminate\Validation\ValidationException你可以App\Exceptions\Handler->render()在它被發(fā)送到供應(yīng)商的父類之前攔截的。


if ($exception instanceof ValidationException) {

    //choose the structure you want. the Validation exception has many methods

    return response()->json(['status' => 'error', 'message' => $exception->getMessage()], 422);

}

編輯:為了攔截表單請求本身的錯誤,聲明以下方法:


public function failedValidation(\Illuminate\Contracts\Validation\Validator $validator)

{

    throw (new \Illuminate\Validation\ValidationException($validator))

                ->errorBag($this->errorBag)

                ->redirectTo($this->getRedirectUrl());

}


查看完整回答
反對 回復 2021-06-19
  • 3 回答
  • 0 關(guān)注
  • 154 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號