【问题标题】:Returning View Fails to Update URL in Address Bar - Laravel 5返回视图无法更新地址栏中的 URL - Laravel 5
【发布时间】:2016-03-28 20:58:48
【问题描述】:

我遇到了 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') }}">

【问题讨论】:

  • 如果你想更新你的 URL,那么只需从控制器创建一个路由,而不是返回视图重定向到该路由。
  • 也许你可以使用Session来存储数据view来查看。
  • 谢谢克劳迪奥。我同意了你的建议。

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


【解决方案1】:

遵循以下重定向模式。

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

【讨论】:

  • 太棒了。我最终选择了这个选项,我认为它与克劳迪奥的相同。
【解决方案2】:

那是因为您使用的是POST 方法。如果 URL 在您的情况下非常重要,您可以使用 GET 提交,但在这种情况下,您需要手动执行很多操作。请阅读更多相关信息here

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

【讨论】:

  • 谢谢。实际上 URL 在这里并不重要,忽略 URL 是一个可行的选择。最后,我决定只接受 Sunil 和 Claudio 的建议,将会话变量与重定向一起使用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-26
  • 1970-01-01
  • 2017-05-27
  • 2019-10-04
  • 2017-10-28
  • 2016-07-28
相关资源
最近更新 更多