I wanted to create this extended validation.

Validator::extend('my_custom_validation_rule', function ($attribute, $value, $parameters) {
   // I guess I should be setting the error message for this here.(Its dynamic)
   // We can return true or false here depending upon our need.  
}

I would use this rule like this

'my_field' => 'required|my_custom_validation_rule',

I want to use some dynamic message for the error of "my_custom_validation_rule"

我无法从文档中找到有关它的信息.有什么办法吗?

推荐答案

extend方法允许将消息作为第三个参数传递:

Validator::extend('my_custom_validation_rule', function ($attribute, $value, $parameters) {
    // ...
}, 'my custom validation rule message');

默认情况下,您只能使用动态变量,即:attribute.如果要添加更多内容,请使用Validator::replacer():

Validator::replacer('my_custom_validation_rule', function($message, $attribute, $rule, $parameters){
    return str_replace(':foo', $parameters[0], $message);
});

Laravel相关问答推荐

Laravel将变量从模板到已发布的供应商模板

密码确认在Livewire中不匹配

在 blade laravel 中以格式编号显示长数字

Laravel 在维护模式下显示自定义消息

Laravel 有Many Many to Many To One Eloquent

Laravel 5 Eloquent 范围连接并 Select 特定列

Laravel 价格验证只接受正数而不是 0

使用'with'时,Laravel belongsTo 返回 null

需要 Vagrant 环境或目标机器

使用模型工厂、一对一和一对多关系定义 Laravel 外键,而不创建不必要的模型

如何在本地 Laravel Homestead 站点上获取 https 证书

Laravel/Lumen 中两列之间的 SQL

Laravel 5.3 通知 - 仅使用Electron邮件地址通知

无法声明类 Controller,因为该名称已在使用中

Laravel 如何从子域 URL 中删除api前缀

Laravel 5如何获取路由动作名称?

基于日期的 Laravel 日志(log)文件

如何在 Laravel 5 中验证 RESTful API?

Laravel Mix:更新 Node.js 依赖项

Laravel:Redis 无法建立连接:[tcp://127.0.0.1:6379]