我正在尝试在我的控制器中使用GET|POST|PUT|DELETE
。
我觉得我的routes.php
文件会因为我的项目越来越大而变得混乱,因为我必须为所有GET|POST...
请求注册许多路由。
这是我现在使用的结构:
<?php
/*
|--------------------------------------------------------------------------
| Home Routes
|--------------------------------------------------------------------------
*/
//Get
Route::get('/', 'HomeController@getIndex');
Route::get('/home/logout', 'HomeController@getLogout');
//Post
Route::post('/home/login', 'HomeController@postLogin');
/*
|--------------------------------------------------------------------------
| Appointment Routes
|--------------------------------------------------------------------------
*/
//Get
Route::get('appointments', 'ApptController@getIndex');
有更好的方法吗?如何组织/改进此文件?
你能给我一些建议吗?谢谢!答案 0 :(得分:2)
有一些方法可以改进你的路线,在上面的例子中,你可以这样做:
Route::group(array('prefix' => 'home'), function()
{
Route::get('logout', 'HomeController@getLogout');
Route::post('login', 'HomeController@postLogin');
});
Route::get('/', 'HomeController@getIndex');
改进代码的另一种方法是让自己更安静。这样您可以在一行代码中处理创建,删除,索引,更新等方法,如下所示:
Route::resource('products', 'ProductsController');
答案 1 :(得分:2)
您可以使用Controller
中的Route::controller()
方法将传入的请求直接路由到现有的routes.php
:
Route::controller('home', 'HomeController');
Route::controller('appointments', 'AppointmentsController');
然后,home/*
对HomeController
的所有请求将由appointments/*
处理,AppointmentsController
将转到HTTP GET
等等。
看起来你已经使用HTTP方法在Controller中创建了你的函数,所以:
'/'
到HomeController@getIndex()
将由HTTP GET
处理
'logout'
至HomeController@getLogout()
将由HTTP POST
处理。'login'
HomeController@postLogin()
至{{1}}将由{{1}}
更多优秀而雄辩的Laravel文档here