从控制器重定向后在 Laravel 中显示错误消息

新手上路,请多包涵

如何在 Laravel 中重定向的视图中显示验证消息?

这是我在控制器中的功能

public function registeruser()
{
    $firstname = Input::get('firstname');
    $lastname = Input::get('lastname');
    $data  =  Input::except(array('_token')) ;
    $rule  =  array(
                'firstname'       => 'required',
                'lastname'         => 'required',
                   ) ;
    $validator = Validator::make($data,$rule);
    if ($validator->fails())
    {
    $messages = $validator->messages();
    return Redirect::to('/')->with('message', 'Register Failed');
    }
    else
    {
    DB::insert('insert into user (firstname, lastname) values (?, ?)',
                                array($firstname, $lastname));
    return Redirect::to('/')->with('message', 'Register Success');
    }
    }

我知道下面给出的代码是一个不好的尝试,但是我该如何修复它以及我缺少什么

@if($errors->has())
    @foreach ($errors->all() as $error)
        <div>{{ $error }}</div>
    @endforeach
@endif

更新:以及如何在特定字段附近显示错误消息

原文由 SA__ 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 413
2 个回答

拉拉维尔 4

当验证失败时返回验证错误。

 if($validator->fails()) {
    return Redirect::back()->withErrors($validator);
}

您可以使用

@if($errors->any())
    {{ implode('', $errors->all('<div>:message</div>')) }}
@endif

更新

要在每个字段下显示错误,您可以这样做。

 <input type="text" name="firstname">
@if($errors->has('firstname'))
    <div class="error">{{ $errors->first('firstname') }}</div>
@endif

使用 css 获得更好的显示样式。

你可以参考 这里的文档。

更新 2

一次显示所有错误

@if($errors->any())
    {!! implode('', $errors->all('<div>:message</div>')) !!}
@endif

在每个字段下显示错误。

 @error('firstname')
    <div class="error">{{ $message }}</div>
@enderror

原文由 Sushant Aryal 发布,翻译遵循 CC BY-SA 4.0 许可协议

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

原文由 afshindadashnezhad 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题