当以下路由时控制器返回无效:
Route::post('/new/save', 'RoomsController@save');
if ($validator->fails()) {
return Redirect::back()->withInput()->withErrors($validator- >messages());
}
无法返回。
单独在路由中进行语句效果测试:
Route::post('/new/save', function(){
return Redirect::back()->withInput();
});
有效,立即返回了。
简而言之:就是在Controller中使用return Redirect::back() 没有任何反应,采用echo Redirect::back()的话,会显示一些多余的信息(即header输出),然后才跳转:
HTTP/1.0 302 Found Cache-Control: no-cache Date: Fri, 08 Aug 2014 18:49:35 GMT Location: http://*******/new/sell Redirecting to http://******/new/sell.
Why~~?
1
yangqi 2014-08-09 03:16:07 +08:00
withInput()放在最后试试,即
return Redirect::back()->withErrors()->withInput(); |
3
konakona OP Laravel的资料实在是太少了,这样的用法也是我从http://forumsarchive.laravel.io/ stackoverflow.com 上找到的,有注明是4可用。
为啥就不起做用呢?完整的控制器中方法是这样的: protected function doBuildNewRoom() { $validator = Validator::make(Input::all(), Rooms::$createRules); if ($validator->fails()) { return Redirect::back()->withErrors($validator->messages())->withInput(); } else { $model = new Rooms(); $model->create_time = time(); var_dump($model->create(Input::all())); $model->save(); AppHelper::showMessage('发布成功!', [], 1); } } |
4
yangqi 2014-08-09 03:37:23 +08:00
Redirect:back()是通过302跳转到referer地址,你单独试是好的说明问题不在这里。
你看了你的$validator能正确返回么? |
6
yangqi 2014-08-09 03:59:40 +08:00
然后呢, 没反应还是什么情况,laravel自己的Log看了么?
withErrors($validator- >messages()); 我怎么觉得你这个中间多了个空格? |