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

时间:2016-03-28 06:03:13

标签: laravel laravel-5 laravel-5.2 laravel-routing

我遇到的问题是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') }}">

2 个答案:

答案 0 :(得分:1)

那是因为你正在使用POST方法。如果URL在您的情况下非常重要,您可以使用GET提交,但在这种情况下,您需要手动执行大量操作。请详细了解here

如果网址不是那么重要,我会保持原样。

答案 1 :(得分:1)

按照以下重定向模式。

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