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

时间:2016-06-19 12:23:49

标签: laravel laravel-5 laravel-5.1 laravel-5.2 blade

如何动态获取当前网址的最后一部分没有'/'?

e.g:

www.news.com/foo/bar
得到 - >杆

www.news.com/foo/bar/fun
得到 - >有趣的

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

9 个答案:

答案 0 :(得分:26)

当然总有Laravel方式:

request()->segment(count(request()->segments()))

答案 1 :(得分:9)

我就这样做了:

{{ collect(request()->segments())->last() }}

答案 2 :(得分:8)

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>.

答案 3 :(得分:8)

使用basename()Request::path()

basename(request()->path())

您应该能够在代码中的任何位置调用它,因为request()是Laravel中的全局帮助函数,basename()是一个标准的PHP函数,也可以在全局使用。

答案 4 :(得分:5)

使用Laravel的帮助功能&#39;最后&#39;

last(request()->segments())

答案 5 :(得分:4)

尝试request()->segment(2)它应该为您提供一段网址。

在您的示例中,根据网址的细分数量,它应该是request()->segment(3)transaction.add(R.id.placeholder, newFragment);

答案 6 :(得分:0)

这对我有用:

request()->path()

来自www.test.site/news

get - &gt;消息

答案 7 :(得分:0)

您的控制器:

 use Illuminate\Support\Facades\URL;

file.blade.php:

echo basename(URL::current());

答案 8 :(得分:-1)

尝试:

{{ array_pop(explode('/',$_SERVER['REQUEST_URI'])) }}

它应该运作良好。