如何检查Laravel 5.2验证中的特定错误?

时间:2017-11-07 22:23:12

标签: php laravel laravel-5 laravel-5.2

现在,我可以使用以下方法检查刀片中存在验证错误的字段:

@if($errors->has('field_name'))
 <div class="help-block">
  Lorem Ipsum
 </div>
@endif

在我的控制器中,我使用的是not_in规则:

"field_name" => "required|string|not_in:

我想知道,我可以更改if语句以仅检查not_in规则吗?

示例:

@if($errors->has('field_name.not_in'))

2 个答案:

答案 0 :(得分:0)

@if($errors->has('field_name') and $errors->first('field_name') == 'The selected field_name is invalid.')
    this is just for not in validation for special input.
@endif

答案 1 :(得分:0)

您可以使用Laravel的自定义错误消息执行此操作。

$messages = [
    'field.required' => 'required',
    'field.string' => 'string',
    'field.not_in' => 'not_in',
];

然后通过以下操作;

if($errors->has('field')){
    foreach($errors->get('field') as $error) {
        if($error == "not_in") {
            // do something
        }
    }
}

这是一个非常混乱的解决方案,但我似乎无法找到Laravel为更漂亮的解决方案提供的任何东西。我想问题是你为什么要这样做?可能有一种方法可以提供更优雅的解决方案,而不是使用错误包。