在重定向上显示laravel错误消息

时间:2017-04-12 09:28:49

标签: php laravel-5

我有一个表单,我希望用它来向mysql插入一些数据。我已经设置了像这样的验证器

public function insert_post(){
        $rules = array(
            'model' => 'required',
            'country' => 'required',
            'engine' => 'required'
                 );

        $validator = Validator::make(Input::all(), $rules);
        if ($validator->fails()) {

            // get the error messages from the validator
            $messages = $validator->messages();
            echo '<pre>';
            print_r($messages);
            echo '</pre>';
            return Redirect::to('create-posts')
                ->withErrors($validator);
        }
        else {
            $i = new Text;
            $i->model = request('model');
            $i->country = request('country');
            $i->engine = request('engine');
            $i->save();
            return redirect('/');
        }
    }

我的create-posts路线看起来像这样。

 public function create_post(){
        return view('create-posts');
    }

然而,它没有显示错误,因为我认为我正在加载新的create-posts并且验证程序消息丢失。

查看代码

 <div class="form-group">
     <label for="inputEmail" class="control-label col-xs-2">Model</label>
        <div class="col-xs-10">
           <input type="text" class="form-control" id="inputEmail" name="model" placeholder="Model">
           @if ($errors->has('model')) <p class="help-block">{{ $errors->first('model') }}</p> @endif
           </div>
        </div>

这是什么原因?。

1 个答案:

答案 0 :(得分:2)

如果您想要返回上一个视图,可以使用:

return Redirect::back()->withErrors($validator);

而不是return Redirect::to('create-posts')->withErrors($validator);