Laravel:构建和组织routes.php

时间:2014-02-06 11:03:10

标签: php laravel laravel-routing

我正在尝试在我的控制器中使用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');

有更好的方法吗?如何组织/改进此文件?

你能给我一些建议吗?谢谢!

2 个答案:

答案 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');

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

答案 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