2017-08-05 34 views
0

这是我的路线:充分利用URL中的最新的蛞蝓在Laravel

Route::get('{slug?}/{slug2?}/{slug3?}', '[email protected]'); 

这是我得到了我的服务提供商蛞蝓值:

$this->app->request->route('slug2') 

出头的我的URL看起来像base_url/slugbase_url/slug/slug2base_url/slug/slug2/slug3。无论我的网址如何,我一直在寻找一种方法来获取最新的slu g。有没有办法做到这一点 ?

THX

+0

我觉得跟你的路线的定义方式,你需要获得当前的URL,然后自己得到最后一部分。 – Andreas

+0

@Andreas我知道我的路线不是完美的解决方案。如果您知道更好的方法来完成此操作,请发布解决方案。 Thx很多:) – Chester

回答

2

使用这个我可以从我的网址的最新的蛞蝓。但我仍然在寻找更好的解决方案,即使我必须改变路线。这是代码:

use Illuminate\Support\Facades\Request; 
.... 
Request::segment(count(Request::segments())) 
+0

我认为这是获取URL中实际内容的最明智的方式。或者,如果你的路线是'show($ slug = null,$ slug2 = null,$ slug3 = null)''你可以做'$ lastSlug =($ slug3?:($ slug2?:$ slug?:null) – apokryfos

-1

使用

回报回();

重定向到前一页

+0

我不需要上一页的网址。我需要从我当前的网址最后一个slu :) :) – Chester

+0

回复第一篇文章的评论 –

0

您可以使用explode

$url = base_url/slug/slug2/slug3; 
$slugs = explode ("/", $url); 
$latestslug = $slugs [(count ($slugs) - 1)]; 
+0

与爆炸,这是硬编码的方式,我正在寻找一种方法或者在Laravel中定义的smth来执行此操作:) – Chester

+0

使用公共函数getRouteKey() { return $ this-> slug; } 后() 请参阅https://laravel.com/docs/5.4/redirects –