如何从控制器向Laravel 5.2中的视图发送错误验证消息

时间:2016-11-14 10:44:41

标签: php laravel-5

我的 PagesController.php

中的代码
umbraco.config

public function postIndex(Request $request){ $this->validate($request, [ 'name' => 'required', 'email' => 'required|email', 'phone' => 'min:3', 'message' => 'min:10', ]); $data = array( 'name' => $request->name, 'email' => $request->email, 'phone' => $request->phone, 'bodyMessage' => $request->message, 'subject' => 'Some subject', ); Mail::send('emails.contact', $data, function($message) use ($data){ $message->from($data['email'], "Hello"); $message->to('some_user@gmail.com'); $message->subject($data['subject']); }); Session::flash('success', 'Email was sent'); return redirect('/'); } 是来自表单输入的数据。如果某些错误在验证视图中,则重定向到'/'。

我的问题是如何处理视图中的错误消息?

2 个答案:

答案 0 :(得分:0)

Session::flash('success', 'Email was sent');
// this will set messages in session

return redirect('/');
// this will redirect to the given url

在视图中,您可以显示以下消息:

if(Session::has('success'))
{
     echo '<div class="alert alert-danger">'. Session::get("success").'</div>';
}

注意:Session :: flash()消息仅对一个请求保持活动状态。

答案 1 :(得分:0)

在您显示validation error的视图中,您可以在刀片文件中添加以下代码:

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

<强>更新

一个原因可能是web中间件在您的情况下应用了两次。 Laravel默认在app/Providers/RoutesServiceProvider.php中添加Web中间件,并再次将其添加到routes.php中 通过从routes.php中删除web中间件来尝试。