我想在具有POST形式的3个页面上保持相同的URL。当表单验证失败时,我正在做,\Redirect::back()->withErrors()
但是如果我在第二页上,它将返回第一页。如何返回第二页而不是第一页?
我的路线是:
Route::post("/test",['as'=>'test','uses'=>'TestController@post']);
Route::get("/test",function(){ return View::make("pages.test"); });
我的控制器是:
class TestController extends Controller
{
function post(Request $request){
if($request->has("test1")){
return view('/pages/test2');
}elseif($request->has("test2")){
return \Redirect::back()->withErrors(["my error"]);
}else{
return "unknown test";
}
}
}
我的刀片文件是test.blade.php:
{{ Form::open(['action' => ['TestController@post']]) }}
Test1
{{ Form::hidden('test1', "test1")}}
{{ Form::submit('CONTINUE')}}
{{ Form::close() }}
test2.blade.php:
{{ Form::open(['action' => ['TestController@post']]) }}
test2
{{ Form::hidden('test2', "test2") }}
{{ Form::submit('CONTINUE')}}
{{ Form::close() }}
当return \Redirect::back()->withErrors(["my error"]);
执行时,我希望返回到test2.blade.php,但是我要返回到test.blade.php。我怎样才能解决这个问题?
您不应return view()
在post
请求内使用。
这是来自商店的请求周期的示例:
GET - show view 1 (shopping-cart)
POST - it's a form submmited from view 1
- if it fails, it redirect to view 1
- after doing the app logic, it redirects to view 2
GET - show view 2 (payment-method)
POST - it's a form submmited from view 2
- if it fails, redirect back will go to view 2
- if it succeded, should redirect to view 3
GET - show view 3 (order confirmation)
您的问题将通过这种路线结构消失
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句