我正在Laravel开发一个多语言网站。可以从“管理”部分添加/删除语言。前端部分包含各种表单,由控制器使用适当的FormRequest
对象进行验证。
验证错误消息在其对应的语言validation.php
文件中进行了硬编码,我无法使用这些文件,因为这些语言是动态添加的。似乎MessageBag
对象只存储消息和相应的字段,但不存储规则名称。
我将所有验证邮件重命名为相应的规则名称,删除了:attribute
部分。
是否有办法(理想情况下直接在视图中)获取失败的验证规则名称?例如,而不是使用:
{{ $errors->first('email') }}
我想用
{{ $errors->firstRule('email') }}
我希望我对此很清楚。我的另一个场景是API,当然,它验证用户输入。我想返回一个包含破坏规则而不是英语消息的数组,这对于多语言FrontEnd来说是难以容纳的。
答案 0 :(得分:1)
如果您使用FormRequest,您可以在以下方法中获取验证器实例:
$this->getValidatorInstance();
然后,如果您需要获取失败规则的名称,只需调用以下代码:
$this->getValidatorInstance()->failed();