【问题标题】:reload/reset route file in laravel在 laravel 中重新加载/重置路由文件
【发布时间】:2017-02-08 23:03:09
【问题描述】:

这是一个罕见的问题。可能有数千种更好的方法来解决下一个问题,但我没有发现如何做得更好。

我有一个使用 N 种语言(en、fr、es)的网站。在每个请求中,我都设置了语言环境。在路由文件中我有类似的东西

Route::get(trans('url.home'), 'User\HomeController@index');

我请求 URL /user 并且工作正常。

另一方面,我正在实现备用元标记

<link rel="alternate" hreflang="es" href="http://es.url.com/usuario" />

在 Trait 中,我尝试做类似

的事情
App::setLocale($new_locale);
$alternate[$new_locale] = action('User\HomeController@index');

区域设置正确更改(我使用了 Trans 方法并且消息已正确翻译),但路由操作没有更改。问题是,有没有办法“重新加载/重置”路线?

对我来说,一个线索或另一个观点就足够了:)

感谢和抱歉我的英语。

【问题讨论】:

  • 你有没有得到这个工作?我现在也面临同样的情况..

标签: php laravel routing laravel-5.3


【解决方案1】:

这是一个微妙的问题,我可能错了,但这个 Laracast 可能会有所帮助:

https://laracasts.com/discuss/channels/requests/multi-language-routes-and-url

【讨论】:

  • 感谢您的回复。在该解决方案中,本地化放置在路径 (domain.com/en/some-url) 中。另一方面,我使用相同的路由但不同的子域(en.domain.com/user es.domain.com/usuario)。我会更深入地查看您的链接。非常感谢!
【解决方案2】:

这可能不是最好的做法,但你可以做到! (至少在 Laravel 8 中)

use Illuminate\Support\Facades\Route;

Route::middleware('web')->group(base_path('routes/other_routes.php'));
Route::getRoutes()->refreshNameLookups();
Route::getRoutes()->refreshActionLookups();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-18
    • 1970-01-01
    • 2020-07-09
    • 2017-10-24
    • 2019-08-26
    • 2018-03-20
    相关资源
    最近更新 更多