【问题标题】:Laravel router redirect to wrong pathLaravel 路由器重定向到错误的路径
【发布时间】:2015-08-26 00:52:00
【问题描述】:

我编写此代码时希望重定向到根 url(/ 或 /home),但实际上它重定向到了 %7Bhome%7D。

Route::get('/{home}', ['as' => 'home', function () {
   return view('home');
}])->where('home', '(home)?');

有谁知道问题出在哪里?

注意:它确实支持两个网址(/ 或 /home)。问题只是在重定向时调用它的名字。

提前致谢!

【问题讨论】:

  • 你能提供你做重定向的代码吗?
  • @num8er 确定!这是一个简单的return redirect()->route('home');

标签: laravel routes laravel-5


【解决方案1】:

一种解决方案是使用两个 URL 创建两个路由:

Route::get('/', 'yourController@methodName');

还有一个:

Route::get('/home', 'yourController@methodName');

您可能知道,%7B 和 %7D 指的是左右大括号 { }。我不知道为什么,但是当它试图指向你的路线时,它显然没有遗漏花括号。

【讨论】:

  • 我在考虑这个解决方案,但如果我扩展品种呢?如果我支持多种语言,我必须为每个成语创建一个,这看起来很乱
【解决方案2】:

很奇怪,您不能使用命名路由进行重定向。
试试这个:

Route::get('{location}', ['as' => 'home', function ($location = 'home') {
   return view($location);
}])->where('location', '(home)?');

或者这个怎​​么样:

Route::any('/', ['as' => 'home', function () {
   return view('home');
}]);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-12
    • 1970-01-01
    • 1970-01-01
    • 2021-08-04
    • 2017-12-06
    • 1970-01-01
    • 2017-06-19
    相关资源
    最近更新 更多