Laravel验证规则 - 获取损坏的规则名称

时间:2017-02-28 21:31:04

标签: php laravel validation

方案

我正在Laravel开发一个多语言网站。可以从“管理”部分添加/删除语言。前端部分包含各种表单,由控制器使用适当的FormRequest对象进行验证。

问题

验证错误消息在其对应的语言validation.php文件中进行了硬编码,我无法使用这些文件,因为这些语言是动态添加的。似乎MessageBag对象只存储消息和相应的字段,但不存储规则名称。

我的解决方案

我将所有验证邮件重命名为相应的规则名称,删除了:attribute部分。

问题

是否有办法(理想情况下直接在视图中)获取失败的验证规则名称?例如,而不是使用:

{{ $errors->first('email') }}

我想用

{{ $errors->firstRule('email') }}

我希望我对此很清楚。我的另一个场景是API,当然,它验证用户输入。我想返回一个包含破坏规则而不是英语消息的数组,这对于多语言FrontEnd来说是难以容纳的。

1 个答案:

答案 0 :(得分:1)

如果您使用FormRequest,您可以在以下方法中获取验证器实例:

$this->getValidatorInstance();

然后,如果您需要获取失败规则的名称,只需调用以下代码:

$this->getValidatorInstance()->failed();