gpt4 book ai didi

php - 添加自定义验证错误消息 laravel

转载 作者:行者123 更新时间:2023-12-02 06:29:51 24 4
gpt4 key购买 nike

我可以做这样的事情来验证 Controller 上的东西。

$this->validate($request,[
'myinput'=>'regex:some pattern'
]);

这个的输出会是这样的

The myinput format is invalid.

我想表达的是我自己的想法

Only some pattern allowed

我如何在 Laravel 上实现这个?

最佳答案

有很多技术可以自定义验证器消息。

在 Controller 内部验证

看起来像这样

$validate = Validator::make($request->all(), [
'name'=>'required|max:120',
'email'=>'required|email|unique:users,email,'.$id,
'password'=>'nullable|min:6|confirmed'
],
[
'name.required' => 'User name must not be empty!',
'name.max' => 'The maximun length of The User name must not exceed :max',
'name.regex' => 'Use name can not contain space',
'email.required' => 'Email must not be empty!',
'email.email' => 'Incorrect email address!',
'email.unique' => 'The email has already been used',
'password.min' => 'Password must contain at least 6 characters',
'password.confirmed' => 'Failed to confirm password'
]);

  • 第一个参数是要验证的输入
  • 第二个数组是验证器规则
  • 最后一个参数是自定义的验证器消息
  • 其中,语法为 [input_variable_name].[validator_name] => "Customized message"

    第二种方法:使用 InfyOm Laravel Generator

    我最喜欢这种方法。它提供了有用的生成工具,例如 Controller、Models、Views、API 等。然而,创建和更新 Request 文件。其中 Request 文件使用 Illuminate\Foundation\Http\FormRequest,其中此类扩展自 Illuminate\Http\Request

    这意味着我们可以访问此文件中的 Request 并对传入的请求执行验证。
    这是我最感兴趣的部分。
    生成的请求文件包含rules函数,例如像这样

    public function rules() {
    return [
    'name' => 'required|unique:flights,name|max:20',
    'airline_id' => 'nullable|numeric|digits_between:1,10',
    ];
    }

    此函数实际上返回验证器规则并根据输入验证它们。您可以覆盖 Illuminate\Foundation\Http\FormRequest 中的函数 messages 以根据需要自定义错误消息:

    public function messages()
    {
    return [
    'required' => "This field is required",
    \\... etc
    ];
    }



    尽管如此,您可以对生成的请求文件做很多事情,只需从您的项目中引用供应商文件夹 vendor/laravel/framework/src/Illuminate/Foundation/Http 中的文件即可。

    这是 Infyom github 链接 InfyOmLabs - laravel-generator

    关于php - 添加自定义验证错误消息 laravel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41658980/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com