Laravel 路由组前缀 - 变量不起作用
Posted
技术标签:
【中文标题】Laravel 路由组前缀 - 变量不起作用【英文标题】:Laravel route group prefix - variable not working 【发布时间】:2020-07-11 00:53:52 【问题描述】:在 web.php 中:
Route::group(['middleware'=>['checklang','checkmoney']],function()
Route::get('/', function ()
return redirect('/'.session()->get('lang'));
);
Route::group([
'prefix' => 'locale',
'where'=>['locale'=>'[a-zA-Z]2']],
function()
Route::get('/tour/id','HomeController@getTours');
);
);
在 HomeContoller 中:
public function getTours($id)
dd($id);
尝试访问 url 时:example.com/en/tour/5
得到结果
en
,但应该是 5
问题出在哪里以及如何解决?
【问题讨论】:
【参考方案1】:您的路线有 2 个变量,locale
和 id
,但您的 Controller 方法仅引用其中一个。您需要同时使用两者:
web.php
:
Route::group(['prefix' => 'locale'], function ()
...
Route::get('/tour/id', 'HomeController@getTours');
);
HomeController.php
public function getTours($locale, $id)
dd($locale, $id); // 'en', 5
注意:定义的顺序很重要; locale
(en) 在 id
5 之前,因此请确保以正确的顺序定义它们。
【讨论】:
非常感谢蒂姆,我之前尝试过提出这个问题,但由于某种原因它不起作用,但现在当我重试时就可以了。非常感谢。以上是关于Laravel 路由组前缀 - 变量不起作用的主要内容,如果未能解决你的问题,请参考以下文章
Laravel Admin 路由不起作用,但其他路由不起作用