【问题标题】:laravel pass validation error to custom viewlaravel 将验证错误传递给自定义视图
【发布时间】:2016-12-07 22:35:05
【问题描述】:

我创建了一个验证,但无法在视图中显示它,返回搜索视图并且不重定向回用户很重要。请帮帮我,谢谢大家?

控制器:

public function search(Request $request)
{
    $msg = Validator::make($request->all(), [
        'search' => 'required'
    ]);
    if ($msg->fails()) {
        return view('layouts.search')->withErrors($msg->messages());
    } else {
        return "Thank you!";
    }
}

查看:

@if($errors->any())
   <ul class="alert alert-danger">
      @foreach($errors as $error)
         <li> {{$error}} </li>
      @endforeach
   </ul>
@else

【问题讨论】:

  • 请确保 $msg->messages() 不为空
  • @ParthVora 是的不为空

标签: laravel laravel-5 laravel-5.2


【解决方案1】:

您可以使用$error-&gt;first('name_of_error_field') 来显示错误消息。

你可以这样做:

public function search(Request $request)
{
    $validator = Validator::make($request->all(), [
        'search' => 'required'
    ]);
    if ($validator->fails()) {
        return view('layouts.search')->withErrors($validator); // <----- Send the validator here
    } else {
        return "Thank you!";
    }
}

并且在视图中:

@if($errors->any())
   <ul class="alert alert-danger">
      @foreach($errors as $error)
         <li> {{$error->first('name_of_error_field')}} </li>
      @endforeach
   </ul>
@endif

查看更多关于Laravel Custom Validators

希望对你有帮助

【讨论】:

  • 不起作用!!
  • 您应该在first() 方法中指定字段的名称。请参阅上面的更新代码。
  • 我现在但是当我在 foreach 中有 dd($errors) 时是空白的!但出于 foreach 有错误...
  • 不要在withErrors()中使用$validator-&gt;messages(),而是使用$validator
  • 谢谢 Sooo Mutch Men
猜你喜欢
  • 1970-01-01
  • 2015-02-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-12
  • 1970-01-01
相关资源
最近更新 更多