【问题标题】:Laravel route translation issueLaravel 路由翻译问题
【发布时间】:2017-04-15 06:32:20
【问题描述】:

这是一个非常奇怪的情况。我的一些路线不想被翻译。我正在使用 Laravel mcamara/laravel-localization 包。

路由按照文档中的说明进行翻译。 在我的网站上,每个翻译都有一个标志来更改语言。通过将鼠标悬停在标志上,它只会更改语言,但不会翻译路线。奇怪的是,对于某些路线它有效,但对于某些路线无效,我无法找出逻辑是什么。

例如,我有一个用于显示文章的控制器。以下是路线:

Route::get(LaravelLocalization::transRoute('routes.artciles').'/{id}/{slug}.html', ['as' => 'strategy.show', 'uses' => 'ArticlesController@show']);
Route::get(LaravelLocalization::transRoute('routes.artciles').'/{category}.html', ['as' => 'strategy.category', 'uses' => 'ArticlesController@category']);
Route::get(LaravelLocalization::transRoute('routes.artciles').'.html', ['as' => 'strategy.index', 'uses' => 'ArticlesController@index']);

这里无法翻译路线?

通过悬停我只看到:

en/articles.html, de/articles.html 而不是 en/articles.html de/artikel.html

【问题讨论】:

  • LaravelLocalization::transRoute('routes.artciles') 中没有错字吗?你不是说'routes.articles'吗?
  • 很遗憾没有。在 lang/routes.php 中也是同样的错字:(

标签: php laravel routing


【解决方案1】:

我找到了解决方案。这是为有类似问题的人准备的:

在Http/routes.php中代码必须不带参数:

Route::get(LaravelLocalization::transRoute('routes.article'), ['as' => 'strategy.show', 'uses' => 'ArticlesController@show'])->where(['id' => '[0-9]+']);
Route::get(LaravelLocalization::transRoute('routes.article_cat'), ['as' => 'strategy.category', 'uses' => 'ArticlesController@category']);
Route::get(LaravelLocalization::transRoute('routes.articles'), ['as' => 'strategy.index', 'uses' => 'ArticlesController@index']);

在 lang/routes.php 中你可以包含如下参数:

'articles' => 'help.html',
'article' => 'help/{id}/{slug}.html',
'article_cat' => 'help/{category}.html',

【讨论】:

    猜你喜欢
    • 2018-09-02
    • 2014-08-14
    • 2018-11-20
    • 1970-01-01
    • 2019-06-13
    • 2012-08-16
    相关资源
    最近更新 更多