2017-07-26 111 views
0

我有一个使用Laravel 5.4,parsley.js和Bootstrap 3构建的联系表单,它工作正常,但它不会在成功交付时在表单顶部显示成功消息的消息或在出现错误时显示任何错误。请协助?在Laravel 5.4中未显示警报消息

位指示

public function postIndex(Request $request){ 
     $this->validate($request, array(
       'name' => 'required|min:10', 
       'email' => 'required|email', 
       'message' => 'required|min:100' 
      )); 

     $name = $request->name; 

     $data = array(
      'name' => $request->name, 
      'email' => $request->email, 
      'bodymessage' => $request->message 
      ); 
     Mail::send('emails.contact', $data, function($message) use ($data) { 
      $message->from($data['email']); 
      $message->to('[email protected]'); 
     }); 

     Session::flash('success', 'Hello $name, Your Form was successfully sent'); 

     return redirect()->route('pages.index'); 
    } 

Index.blade.php

<div class="col-sm-4"> 

{!! Form::open(array('route' => 'index.post', 'class' => 'contact-form', 'data-parsley-validate' => '')) !!} 

<div id="success"> 
<div class="col-sm-12"> 
@if(Session::has('success')) 

<div class="alert alert-success" role="alert"> 

<strong> Success: </strong> {{ Session::get('success') }} 

</div> 

@endif 

@if(count($errors) > 0) 

<div class="alert alert-danger" role="alert"> 

<strong> Errors: </strong> 
<ul> 
@foreach($errors->all() as $error) 
<li> {{ $error }} </li> 
@endforeach 
</ul> 

</div> 
@endif 
</div> 
</div> 

{{ Form::text('name', null, array('placeholder' => 'Name...', 'class' => 'input', 'required' => '', 'minlength' => '10'))}} 

{{ Form::email('email', null, array('placeholder' => 'Email Address...','class' => 'input', 'required' => '', 'type' => 'email'))}} 

{{ Form::textarea('message', null, array('placeholder' => 'Message...', 'class' => '', 'required' => 'input', 'minlength' => '100')) }} 

{{ Form::submit('Submit') }} 

{!! Form::close() !!} 
</div> 

路线

Route::get('/', '[email protected]') ->name('pages.index'); 
    Route::post('/', '[email protected]') ->name('index.post'); 

回答

0

您是重定向与表单发布的路线相同。我假设呈现视图的路由是GET路由并有另一个名称,您应该重定向到该路由或呈现的路由index.blade.php

+0

,,,我已经纠正了路线和所使用的显示形式,但仍然是错误信息不显示,,,,这可能是我的Bootstrap代码的错误 – Martin

+0

也许你可以发布你的路线fil e和你的整个控制器 –

+0

,,,检查出来我用新的路由和控制器更新了我的查询,但问题仍然存在 – Martin

0

这就是为什么你有with()方法来链接route()方法。因此,而不是使用Session:flash(),你可以简单地添加一个with()方法闪烁该消息会话的下一个请求:

return redirect()->route('pages.index')->with('success', 'Hello'. $name.', Your Form was successfully sent'); 

或者说,如果你的形式从index页面本来,那么你根本就没有要记住路线的名称,只需使用back() helper方法,即:

return back()->with('success', 'Hello'. $name.', Your Form was successfully sent');