我是laravel的新手。 我想在刀片文件(HTML文件)中获取我的URL的最后一部分。 我使用php功能完成了这个。 有什么方法可以使用任何laravel功能来获得它。
以下是我的代码,工作正常
<?php
$url = url()->current();
echo $end = end((explode('/', $url)));
?>
我也用过这个来获取
Request::segment(2)
我的网址是http://localhost/blog/public/user/add-user。 我想在html文件中添加add-user。
谢谢
答案 0 :(得分:2)
尝试使用此代码获取网址的最后一个值
$uri_path = $_SERVER['REQUEST_URI'];
$uri_parts = explode('/', $uri_path);
$request_url = end($uri_parts);
答案 1 :(得分:1)
你的问题的答案是:“没有任何Laravel功能”或者更确切地说是Laravel助手获得最后一段,但幸运的是你可以使用php。已提及end
且end
适用于数组,但我认为不能直接在Request::segments()
上使用。这意味着您必须先将Request::segments()
放入变量(例如$lastSegment
),然后对变量使用end
。
我能找到的最好最苗条的方法是:
{{ basename(Request::url()) }}
在刀片中使用此功能,但当然可以在控制器或Laravel view composer中添加此功能之前提及。
答案 2 :(得分:0)
如果您特别想要最后一个片段(可能是第二个,第三个,第四个等),您可以使用end(Request::segments())
始终获得最后一个片段。
另外,如果您不想在模板中调用函数并且更多一点'Laravel',为什么不将它从控制器绑定到您的视图?
在您的控制器中:
public function show()
{
return view('your.view')->with('lastSegment', end(Request::segments()));
}
然后在您的视图中,您可以执行此操作:
<p> The last segment is {{$lastSegment}} </p>
此外,如果您想让$lastSegment
在所有视图中都可用,而无需在所有控制器中对其进行编码,请查看使用Laravel's view composer。非常强大的制作模板。