使用Blade获取Laravel 5中当前URL的最后一部分

如何动态获取当前URL的最后一部分没有’/’?

例如:

www.news.com/foo/bar
得到 – >酒吧

www.news.com/foo/bar/fun
得到 – >开玩笑

在当前视图中放置函数或如何实现它的位置?

Route object是您想要的信息的来源.您可以通过几种方式获取信息,其中大部分都涉及将某些内容传递给您的视图.我强烈建议不要在刀片中进行工作,因为这是控制器操作的用途.

将值传递给刀片

最简单的方法是使路由的最后一部分成为参数,并将该值传递给视图.

// app/Http/routes.php
Route::get('/test/{uri_tail}', function ($uri_tail) {
    return view('example')->with('uri_tail', $uri_tail);
});

// resources/views/example.blade.php
The last part of the route URI is <b>{{ $uri_tail }}</b>.

避免路由参数需要更多的工作.

// app/Http/routes.php
Route::get('/test/uri-tail', function (Illuminate\Http\Request $request) {
    $route = $request->route();
    $uri_path = $route->getPath();
    $uri_parts = explode('/', $uri_path);
    $uri_tail = end($uri_parts);

    return view('example2')->with('uri_tail', $uri_tail);
});

// resources/views/example2.blade.php
The last part of the route URI is <b>{{ $uri_tail }}</b>.

使用request helper在刀片中完成所有操作.

// app/Http/routes.php
Route::get('/test/uri-tail', function () {
    return view('example3');
});

// resources/views/example3.blade.php
The last part of the route URI is <b>{{ array_slice(explode('/', request()->route()->getPath()), -1, 1) }}</b>.
相关文章
相关标签/搜索