Validation 尽管进行了编码,会话闪存消息仍不显示在任何位置

Validation 尽管进行了编码,会话闪存消息仍不显示在任何位置,validation,laravel-5.2,Validation,Laravel 5.2,我按照5.2文档的要求严格执行操作,但是验证让我发疯 1) 这是我在控制器中$property->save()之后的代码片段;作用 Session::flash('success', 'property table filled'); Session::flash('errors', 'These are the errors'); 等 第二个问题是Validate方法,如果有错误,它会返回到createform页面,但是它不会绑定字段中的现有数据,而是会清除所有内容,因此我必须从头开始创建

我按照5.2文档的要求严格执行操作,但是验证让我发疯

1) 这是我在控制器中$property->save()之后的代码片段;作用

Session::flash('success', 'property table filled');
Session::flash('errors',  'These are the errors');

第二个问题是Validate方法,如果有错误,它会返回到createform页面,但是它不会绑定字段中的现有数据,而是会清除所有内容,因此我必须从头开始创建表单。此外,它不会显示任何错误消息

public function store(Request $request){            

             $this->validate($request, array(

            'country' => 'bail|required|max:100',
            'region'  => 'bail|required|max:100',
            etc 
根据文档,如果无法通过,仅此一步就应该返回到上面的Create方法(显示创建Post的表单的方法)并发出一组错误。 因为我使用的是资源控制器,所以所有的路由都包含在一行中,而且所有的控制器和东西都在Web中间件中:

Route::group(['middleware' =>'web'], function(){
Route::auth();

  Route::get('/', function () {
    return view('welcome');
});

Route::get('/home', 'HomeController@index');
Route::resource('property', 'PropertyController');


});
这是我在版面中包含的部分中的完美片段,因此它将为每个有会话的页面显示消息(成功或失败):

@if(Session::has('success'))
<div class="alert alert-success" role="success">
<strong>Success: </strong>  {{Session::get('success')}}

</div>
@endif

<div class="row">
    @if (count($errors) > 0)
    <div class="alert alert-danger">
        <ul>
            @foreach ($errors->all() as $error)
                <li>{{ $error }}</li>
            @endforeach
        </ul>
    </div>
@endif
@if(Session::has('success'))
成功:{{Session::get('Success')}
@恩迪夫
@如果(计数($errors)>0)
    @foreach($errors->all()作为$error)
  • {{$error}}
  • @endforeach
@恩迪夫
相反,如果表数据库中的数据存储成功,它仍然不会回显任何成功的flash会话消息

问题:


如果提交的数据中有任何错误,为什么不显示任何内容,为什么会清空所有字段。清空字段的效果与刷新页面时(填充的字段保持填充状态)的效果相同,而与在浏览器的URL框中单击并按下时的效果相同

好吧,这是一种情况,你得到了答案,但你不知道为什么它会起作用

虽然我在routes文件中的Web中间件中已经有了Resource Controller方法,但事实证明,我不必放置(或者说这是不够的)以下内容:

在属性控制器中(然后是Routes文件中Web中间件中的该控制器),但实际上这两行本身就在Routes文件中

Session::flash('success', 'property table filled');
Session::flash('errors',  'Posting failed');
这是如此之多,以至于如果我从控制器中删除它们,这仍然有效,但是如果我从路由文件中删除它们,它就不起作用了

Session::flash('success', 'property table filled');
Session::flash('errors',  'Posting failed');