Laravel如何将组前缀参数添加到路由功能
Posted
技术标签:
【中文标题】Laravel如何将组前缀参数添加到路由功能【英文标题】:Laravel how to add group prefix parameter to route function 【发布时间】:2016-03-31 10:10:22 【问题描述】:例如,我定义了这样的路由:
$locale = Request::segment(1);
Route::group(array('prefix' => $locale), function()
Route::get('/about', ['as' => 'about', 'uses' => 'aboutController@index']);
我想为多个语言环境(en、de、es、...)生成链接。当我尝试提供这样的前缀参数时
$link = route('about',['prefix' => 'de']);
我有这样的链接example.com/en/about?prefix=de
如何提供前缀参数以获得这样的链接example.com/de/about
【问题讨论】:
我不认为 laravel 路由有任何功能。签出此link 是的,有支票docs 是的,@Uchiha 可以在该组的属性前缀中使用命名参数。谢谢 @KalanjDjordjeDjordje #sixFingersMan 答案是正确的 【参考方案1】:也许你可以玩弄这样的东西。
Route::group(['prefix' => 'locale'], function ()
Route::get('about', ['as' => 'about', 'uses' => '....']);
);
route('about', 'en'); // http://yoursite/en/about
route('about', 'de'); // http://yoursite/de/about
【讨论】:
【参考方案2】:你可以这样做:
Route::group(['prefix'=>'de'],function()
Route::get('/about', [
'as' => 'about',
'uses' => 'aboutController@index'
]);
);
现在route('about')
会给出这样的链接:example.com/de/about
【讨论】:
我不需要定义路由。我需要获取带有其他前缀的路由的 url。【参考方案3】:试试这个:
$locale = Request::segment(1);
Route::group(array('prefix' => $locale), function()
Route::get('/about', ['as' => 'about', 'uses' => 'aboutController@index']);
并且在提供链接的同时,您可以使用 url 辅助函数代替路由:
$link = url('de/about');
如果您想要更通用,请在控制器/视图中使用它:
$link = url($locale.'/about');
$locale 可能是en,de,etc
【讨论】:
【参考方案4】:你可以像这样简单地实现它
Route::group(['prefix' => 'de'], function ()
Route::get('about', ['as' => 'de.about', 'uses' => 'aboutController@index']);
);
你可以像 as 一样使用它
$link = route('de.about');
【讨论】:
de
在子路由中不是必需的
很抱歉,我对一个问题几乎没有改进。问题是如何在调用路由函数时一般更改前缀
但很容易识别@BasheerAhmed
@BasheerAhmed 它不会以上是关于Laravel如何将组前缀参数添加到路由功能的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 使用 Route::resource 生成路由需要添加前缀 /admin/