我使用下面的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
2条答案
按热度按时间cczfrluj1#
阅读了你最后的评论,我建议你创建一个中间件来设置语言。你可以用真正“正确”的中间件来调用你的路由(或者用那个中间件来分组路由)。这样,你的项目就更面向未来,更有条理。
请参见文档https://laravel.com/docs/master/middleware
dgjrabp22#
你不能这样
这不是一个合适的方式来定位您在拉腊维尔的路线。
如果你想为你的laravarl应用程序设置本地化,有一个包fir,github中的pakcage的名字是mcamara/laravel-localization,它是最好的本地化包之一。
Package github link