Laravel语言前缀以及其他参数

时间:2019-05-22 02:34:36

标签: laravel

一个已经被我杀死了好几天的快速问题。 对于Laravel,我尝试使用不同的语言。

英语和日语

这适用于这样的路线。

Route::group([
    'prefix' => '{lang}',
    'where' => ['lang' => '(jp|en)'],
    'middleware' => 'Language'
], function() {
    Route::get('/blogs', 'BlogController@index')->name('main-blog');
    Route::get('/blog/{postId}/{postTitle}', 'BlogController@post'); 
});

当我访问“ /博客”页面时,此方法有效。 它在语言之间变化。

现在,当我访问“ / blog / {postId} / {postTitle}”页面时,无法再在控制器中访问发布的参数。

以某种方式仅显示“ lang”参数。 使用前缀时访问参数的正确方法是什么?

当我不使用前缀时,它就像一个魅力。

我的控制器;

public function post($blog_id, $blog_title) 
{
    // Do something
}

我们非常感谢您的帮助。 几天来,我一直在为此头痛不已。

卫斯理

1 个答案:

答案 0 :(得分:1)

您可以使用prefix参数为分组的路由指定通用参数。因此,您需要为该控制器再添加一个参数$lang

public function post($lang, $blog_id, $blog_title) 
{
    // Do something
}

使用prefix参数,路由如下所示:

/{lang}/blogs
/{lang}/blog/{postId}/{postTitle}