Laravel:使用不同的参数打印当前路线

时间:2018-01-02 20:05:02

标签: php laravel laravel-5 laravel-5.5

考虑Laravel 5中的以下路线组:

Route::prefix('{locale}')->group(function () {
    // ... Other routes here
});

嵌套在此路径组中的所有路径都具有扩展特定布局的视图。

在这个布局的某个地方,我循环了我的应用程序中的所有可用语言环境,并且我将链接更改为此语言环境。在我的视图中打印这些链接的最简单方法是什么,保留当前路由以及可能的其他路由参数,但仅更改{locale}参数?

2 个答案:

答案 0 :(得分:0)

遇到此问题并提出了以下建议:

app('url')->toRoute(
    request()->route(),
    array_merge(request()->route()->parameters(), ['locale' => $otherLocale]),
    true
);

您可以将其变成像route这样的助手:

function current_route($params = [], $absolute = true)
{
    return app('url')->toRoute(
        request()->route(),
        array_merge(request()->route()->parameters(), $params),
        $absolute
    );
}

并用current_route(['locale' => 'sv'])

调用

答案 1 :(得分:-1)

也许只是键入提示请求并通过控制器将前缀传递到您的视图中并在链接中使用它:

public function ControllerWithLocaleLinks(Request $request)
{
    $currentLocale = $request->route()->getPrefix();
    return view('locale', compact('currentLocale'));
}