laravel 如何通过行动到拉勒维8路线?

wyyhbhjk  于 2022-11-18  发布在  其他
关注(0)|答案(2)|浏览(143)

我使用下面的Route声明将language操作传递给路由。

Route::get('/de', ['uses' => 'PageController@showHomepage', 'language' => 'de']);

在控制器中,我可以得到这样的值:

$action = $request->route()->getAction();
// $action['language'] gives the given value here..

但是用可调用语法,我找不到如何做同样的事情.当使用下面类型的route定义时:

Route::get('/', [PageController::class, 'showHomepage']);

如何将language传递给new声明?这是一种将参数传递给Route::get()中的callable的方法吗?
像这样的东西

Route::get('/', ([PageController::class, 'showHomepage'],'languagecode_parameter_here'));

非常感谢您的光临。
PS:如果你问我为什么需要这样的自定义参数,这里是关于需要的更多细节:https://github.com/laravel/framework/discussions/44839

cczfrluj

cczfrluj1#

阅读了你最后的评论,我建议你创建一个中间件来设置语言。你可以用真正“正确”的中间件来调用你的路由(或者用那个中间件来分组路由)。这样,你的项目就更面向未来,更有条理。
请参见文档https://laravel.com/docs/master/middleware

dgjrabp2

dgjrabp22#

你不能这样
这不是一个合适的方式来定位您在拉腊维尔的路线。
如果你想为你的laravarl应用程序设置本地化,有一个包fir,github中的pakcage的名字是mcamara/laravel-localization,它是最好的本地化包之一。
Package github link

相关问题