2014-02-06 94 views
-1

我試圖在我的控制器中使用GET|POST|PUT|DELETELaravel:結構和組織routes.php

我覺得我的routes.php文件會變得混亂,因爲我的項目越來越大,因爲我將不得不爲所有GET|POST...請求註冊大量路由。

這是我現在使用的結構:

<?php 
/* 
|-------------------------------------------------------------------------- 
| Home Routes 
|-------------------------------------------------------------------------- 
*/ 

//Get 
Route::get('/', '[email protected]'); 
Route::get('/home/logout', '[email protected]'); 

//Post 
Route::post('/home/login', '[email protected]'); 

/* 
|-------------------------------------------------------------------------- 
| Appointment Routes 
|-------------------------------------------------------------------------- 
*/ 
//Get 
Route::get('appointments', '[email protected]'); 

有沒有更好的辦法做到這一點?我怎樣才能組織/改進這個文件?

你能給我一些建議嗎?謝謝!

+1

我認爲你正在尋找RESTful /資源豐富的控制器:http://laravel.com/docs/controllers#restful-controllers – Quasdunk

回答

2

您可以將傳入的請求直接到您現有Controller小號使用routes.phpRoute::controller()方法:

Route::controller('home', 'HomeController'); 
Route::controller('appointments', 'AppointmentsController'); 

然後home/*所有請求都將通過您的HomeController處理,appointments/*將g^O操作AppointmentsController等等等等等等

看起來你已經使用HTTP方法,所以當時已經創建了功能的控制器:

一個HTTP GET'/'[email protected]()
被處理的HTTP GET'logout'會通過[email protected]()
一個HTTP POST'login'將由[email protected]()

更優異的被處理和被處理雄辯Laravel文檔here

2

有一些你可以improove你的路線,在上述情況下的方式,比如,你可以這樣做:

Route::group(array('prefix' => 'home'), function() 
{ 
    Route::get('logout', '[email protected]'); 
    Route::post('login', '[email protected]'); 
}); 

Route::get('/', '[email protected]'); 

另一種方式來improove你的代碼,是想更舒適。這種方式可以處理方法,例如在一行代碼像這樣創建,刪除,索引,更新:

Route::resource('products', 'ProductsController'); 

看看:http://laravel.com/docs/controllers#resource-controllers