我遇到的问题是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') }}">
答案 0 :(得分:1)
那是因为你正在使用POST
方法。如果URL在您的情况下非常重要,您可以使用GET
提交,但在这种情况下,您需要手动执行大量操作。请详细了解here。
如果网址不是那么重要,我会保持原样。
答案 1 :(得分:1)
按照以下重定向模式。
protected function sendToCreate(Request $request)
{
return Redirect::to('createproject/create')->with('key',$value);
}