2015-06-09 96 views
0

所以我使用Laravel開始,我發現它很容易,現在我創造我自己的RESTful服務。我的問題是我不知道我是否正確地做了href鏈接,但是它正在工作。下面是代碼:Laravel HREF重定向

<a href="{{URL::to('accounts/create')}}">Add user</a> 

在我控制我只呈現刀片:

public function create() 
{ 
    return view('accounts.create'); 
} 

所以,如果我點擊鏈接添加用戶,它將我重定向到localhost:8080/accounts/create這是運作良好。我的問題是,是否有更好的方法來做到這一點?就像我改變了我的路線文件中的任何一樣,我不會再改變href鏈接了嗎?

+0

快速瞭解您的可用路線及其名稱:[Laravel 4 - Blade Templating - 如何正確鏈接到路線?](http://stackoverflow.com/questions/22751866/ laravel-4刀抵模板 - 如何對正確鏈接到清柔te) –

回答

3

理想情況下,你會在您的路線文件中命名路線。 喜歡的東西,

Route::get('accounts/create', [as => 'createAccount', 'uses' => '[email protected]']); 

您將如下

<a href="{{URL::route('createAccount')}}">Add user</a> 
在你看來

使用它。

這樣,即使您更改URL(賬戶/創建),或動作名稱(創建),你不會有改變它在視圖中。允許您的視圖是獨立的。

+0

謝謝你這位先生,我可以問一個問題嗎?我是否真的需要在每個應用程序中始終執行「laravel new app_name」? – FewFlyBy

1

http://laravel.com/docs/4.2/routing#named-routes

例子:

Route::get('accounts/create', array('as' => 'signup', 'uses' => '[email protected]')); 

<a href="{{URL::route('signup')}}">Add user</a> 

這條路線被命名爲 「註冊」,你可以爲隨時更改網址:

Route::get('accounts/signup', array('as' => 'signup', 'uses' => '[email protected]')); 
+0

謝謝你這位先生,我可以問一個問題嗎?我是否真的需要在每個應用程序中始終執行「laravel new app_name」? – FewFlyBy

+0

還有其他方法可以將Laravel設置爲: 'composer create-project laravel/laravel --prefer-dist' 但是,您應該始終使用其中一種設置每次。 或者只是複製新鮮的Laravel複製到另一個項目和作曲家安裝。 – RY35

1

是的,你可以使用動作()輔助呼叫控制器內的方法和按需自動生成它的路線。所以我們考慮一下你有一個名爲FrontendController.php的控制器和一個名爲showFrontend($ section)的方法,並且假設你有一個匹配這個控制器和方法的路由(比如說「frontend/show/{$ section} 」,你可以撥打:

action('[email protected]', array('index')) 

這將返回:

frontend/show/index 

所以基本上它看起來關聯到該方法/控制器的路線,您可以與其他傭工結合此創建一個完整的URL 。

注意:考慮命名空間,以防控制器,嵌套資源等有不同的文件夾。

我希望它有幫助!

+0

謝謝你這位先生,我可以問一個問題嗎?我是否真的需要在每個應用程序中始終執行「laravel new app_name」? – FewFlyBy

+0

該命令僅用於創建Laravel軟件包的全新安裝。你可以使用這個命令來創建一個基於laravel的新項目,或者你可以使用composer,或者你可以從Github下載代碼並將它放在任何你想要的地方,等等......你可以在這裏找到更多的信息:http: //laravel.com/docs/5.1 –

+0

我更喜歡現在下載代碼.. – FewFlyBy

2

你可以做的是使用數組中的as鍵路線的第二個參數給你的路線名稱:

Route::get('accounts/create', [ 
    'as' => 'accounts.create', 
    'uses' => '[email protected]' 
]); 

然後,你可以通過它的名字和指這條路線在您的應用程序即使您恰好更改了網址,它也會到達相同的位置。對於一個錨標記,你可以做到以下幾點:

{{ URL::route('accounts.create') }} 

如果您使用的是資源控制器將有預定義的路線,你可以在這裏看到下處理好通過資源控制器操作:http://laravel.com/docs/5.1/controllers#restful-resource-controllers

你總是可以通過運行php artisan route:list

+0

謝謝你這位先生,我可以問一個問題嗎?我是否真的需要在每個應用程序中始終執行「laravel new app_name」? – FewFlyBy

+0

不客氣,謝謝你的感謝。至於你的問題,你說的是使用laravel安裝程序來創建一個新項目,對吧?如果是這樣,是的,但是,fyi的評論並不是真正提出單獨問題的地方。嘗試在這裏創建一個新問題,或嘗試在laravel社區之一中詢問,例如laravel.io論壇laracasts.com論壇或laravel irc,如果您還有其他問題。謝謝。 – haakym

+0

好吧,先生,謝謝 – FewFlyBy