返回视图无法更新地址栏中的URL-Laravel 5



我遇到Laravel 5无法为浏览器中当前显示的视图显示正确URL的问题。

我的网站包含一系列视图,每个视图都包含一个表格,用户会被引导依次浏览这些视图,并按照特定的顺序提交我需要的所有信息。有四个这样的页面,除了URL显示之外,它们的一切都很好。

结果是:我们加载第一个视图,URL显示mypage/1。我们提交了表单,第二个视图加载完毕,但mypage/1仍在地址栏中。当我们在第二个视图中提交表单并加载第三个视图时,URL向前移动一次,在地址栏中显示mypage/2。通过这种方式,地址栏中的URL和实际显示的视图之间存在一页的滞后。

示例路线:

Route::get('createproject/start', 'CreateProjectController@start');
Route::post('createproject/start', 'CreateProjectController@sendToCreate');
Route::get('createproject/create', 'CreateProjectController@create');
Route::post('createproject/create', 'CreateProjectController@insertProject');

控制器功能示例:

public function start()
{
        return view('createproject/start');
}
public function create()
{
    return view('createproject/create');
}
protected function sendToCreate(Request $request)
{
    return view('createproject/create', array('proj_name' => $request->name,
                                       'proj_area_main' => $request->area_main,
                                       'proj_field' => $request->field,
                                       'proj_creator' => $request->creator,
                                       ));
}

示例形式:

// On the start page, the form begins like this...
<form class="form-horizontal" role="form" method="POST" action="{{ url('/createproject/start') }}">
// On the create page, the form begins like this...
<form class="form-horizontal" role="form" method="POST" action="{{ url('/createproject/create') }}">

遵循以下重定向模式。

protected function sendToCreate(Request $request)
{
return Redirect::to('createproject/create')->with('key',$value);
}

这是因为您使用的是POST方法。如果URL在您的情况下非常重要,您可以使用GET提交,但在这种情况下,您需要手动做很多事情。请在这里阅读更多信息。

如果URL不那么重要,我会保持一切原样。

最新更新