Laravel 5.4:当我有3个使用相同网址的帖子页面时,如何重定向回正确的页面?

马尔科姆中心

我想在具有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。我怎样才能解决这个问题?

Lloople

您不应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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章