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

使用Blade获取Laravel 5中当前URL的最后一部分,laravel,laravel-5,laravel-5.2,laravel-5.1,laravel-blade,Laravel,Laravel 5,Laravel 5.2,Laravel 5.1,Laravel Blade,如何在没有/符号的情况下动态获取当前URL的最后一部分 例如: 在www.news.com/foo/bargetbar 在www.news.com/foo/bar/fungetfun 在当前视图中将函数放置在何处或如何实现此功能?尝试request()->segment($number)它应该为您提供一段URL 在您的示例中,它可能是request()->segment(2)或request()->segment(3),这取决于URL拥有的段数。请尝试: {{ array_pop(explode

如何在没有
/
符号的情况下动态获取当前URL的最后一部分

例如:

www.news.com/foo/bar
get
bar

www.news.com/foo/bar/fun
get
fun

在当前视图中将函数放置在何处或如何实现此功能?

尝试
request()->segment($number)
它应该为您提供一段URL

在您的示例中,它可能是
request()->segment(2)
request()->segment(3)
,这取决于URL拥有的段数。

请尝试:

{{ array_pop(explode('/',$_SERVER['REQUEST_URI'])) }}
它应该很好用。

是您想要的信息的来源。有几种方法可以获取信息,其中大多数都涉及到将某些信息传递给您的视图。我强烈建议不要在刀片服务器内执行此操作,因为这是控制器操作的目的

将值传递给刀片服务器

最简单的方法是将管线的最后一部分设置为参数,并将该值传递给视图

//app/Http/routes.php
路由::get('/test/{uri\u tail}',函数($uri\u tail){
返回视图('example')->带有('uri_tail',$uri_tail');
});
//参考资料/views/example.blade.php
路由URI的最后一部分是{{$URI_tail}。
避免路线参数需要更多的工作

//app/Http/routes.php
路由::get('/test/uritail',函数(照亮\Http\Request$Request){
$route=$request->route();
$uri_path=$route->getPath();
$uri_parts=explode(“/”,$uri_path);
$uri_tail=end($uri_parts);
返回视图('example2')->带有('uri\u tail',$uri\u tail');
});
//参考资料/views/example2.blade.php
路由URI的最后一部分是{{$URI_tail}。
在刀片中完成所有操作使用

//app/Http/routes.php
路由::get('/test/uritail',函数(){
返回视图(“示例3”);
});
//参考资料/views/example3.blade.php
路由URI的最后一部分是{array_slice(explode('/',request()->route()->getPath()),-1,1)}。

当然,总有一种方法:

request()->segment(count(request()->segments()))
这对我很有用:

request()->path()
来自www.test.site/news

get->news

我就是这样做的:

{{ collect(request()->segments())->last() }}
Request::path()
一起使用


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

您可以使用Laravel的帮助函数
last
。像这样:

last(request()->segments())
您的控制器:

 use Illuminate\Support\Facades\URL;
file.blade.php:


echo basename(URL::current())

做一个正则表达式来获得部分谢谢,你能给我一个例子吗?如果你用你的想法发布examle代码,我会帮助你。如果需要的话,还可以添加一个rtrim来删除最后一个斜杠。最简单的解决方案是farThis有时会返回链接的一个额外部分:example/blablabla而不是blablablablambly,我一开始认为正确,一行代码;-)简单易懂这是最好的答案
 use Illuminate\Support\Facades\URL;