【问题标题】:Laravel 9 Validator Make Method Not Seems To Be WorkingLaravel 9 Validator Make 方法似乎不起作用
【发布时间】:2023-01-01 18:21:43
【问题描述】:

我已经在 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 给定,在 C:\projectname\vendor\laravel\framework\src\Illuminate\Support\ 中调用Facades\Facade.php 第 338 行

那么这里出了什么问题?

我该如何解决这个问题?

【问题讨论】:

标签: php laravel laravel-9 laravel-validation laravel-request


【解决方案1】:

你只是有一个简单的语法问题:

您必须传递 $request->all() 数组而不是 $request instance

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-25
    • 1970-01-01
    • 2023-02-04
    • 2019-10-04
    • 2021-09-27
    • 2021-11-27
    • 2021-09-13
    • 1970-01-01
    相关资源
    最近更新 更多