2017-08-05 66 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 –