使用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
getbar
在www.news.com/foo/bar/fun
getfun
在当前视图中将函数放置在何处或如何实现此功能?尝试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;