簡體   English   中英

Laravel 9 驗證器生成方法似乎不起作用

[英]Laravel 9 Validator Make Method Not Seems To Be Working

我在 Controller 中編寫了這段代碼作為表單的 Action:

public function submitAsk(Request $request)
    {
        $rules = [
            'title' => 'required|max:255',
            'description' => 'required|max:1000',
            'category' => 'required',
            'tags' => 'required',
        ];

        $messages = [
            'required' => ':attribute can not be empty'
        ];

        $validator = Validator::make($request, $rules, $messages);

        if ($validator->fails()) {
            return redirect('questions/ask')
                ->withErrors($validator)
                ->withInput();
        }

        ...
    }

但我得到這個錯誤:

Illuminate\Validation\Factory::make(): 參數 #1 ($data) 必須是數組類型,Illuminate\Http\Request given, called in C:\projectname\vendor\laravel\framework\src\Illuminate\Support\ Facades\Facade.php 第 338 行

那么這里出了什么問題?

我該如何解決這個問題?

你只是有一個簡單的語法問題:

您必須傳遞$request->all()數組而不是$request instance

$validator = Validator::make($request->all(), $rules, $messages);

參考https://laravel.com/docs/9.x/validation#manually-creating-validators

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM