2013-05-28 77 views
8

我是Laravel &的新手,現在在L-4上構建一個應用程序,但卡在一個地方。無法理解如何生成相對於基本網址的網址。在laravel-3,我知道這可以通過生成相對於laravel中的基礎url 4

$url = URL::to('user/profile'); 

完成,但是,在L-4,我們如何能做到這一點..?

回答

7

首先,你需要創建一個名爲路線像

說喲想去http://baseurl/user並運行「showuser」定義的方法控制「ALLUSERS」

那麼你的路由shold是這樣的: -

Route::get('user', array('as' => 'myuser', 'uses' => '[email protected]')); 

現在您的網址/用戶將

$myuserurl = URL::to('/myuser'); 
echo $myuserurl; // would be http://baseurl/user 

我希望這可以幫助你。請參照http://laravel.com/docs/routing#named-routes

+0

不應該是'URL :: to('myuser');'因爲它會調用路由的名稱來確定鏈接到哪裏而不是直接鏈接到路由?如果它是'URL :: to('/ myuser')',我認爲路由應該是'Route :: get('/ myuser',array('as'=>'myuser','uses'=>'allusers '#showuser'));' – user1669496

+0

您可以定義不帶前導斜槓的路由(/),並且可以直接使用URL :: Route來獲取指定的路由URL: - Route :: get =>'myuser','uses'=>'allusers @ showuser'));用法 - URL :: route('myuser',array()) –

+0

Downvoted作爲答案是誤導。 URL :: to()不會路由到指定路由,也不會生成相對URL。 – sebt

19

要生成相對網址,你可以使用URL::routeURL::action,因爲它們允許通過一個$absolute參數默認爲true。因此,使用命名路由例如,當得到一個相對URL,可以使用以下命令:

URL::route('foobar', array(), false) 

這將產生像/foobar的URL。

+0

這是最接近正確答案的問題。 URL :: route()生成一個指定路由的URL,最後一個'false'參數規定生成的路由是相對的。爲了清楚起見,生成的URL將是命名路由定義的URL,不一定是'/ foobar' – sebt