1

我可以说 Laravel 4 中的所有控制器默认都是 RESTful 控制器吗?如何制作非 RESTful 控制器?RESTful 控制器和资源控制器有什么区别?

// routes.php
Route::get('/', 'HomeController');

我可以说 HomeController 是一个 RESTful 控制器吗?

4

1 回答 1

5

在 RESTful 控制器中,方法名称以它们应该响应的 HTTP 动词为前缀,因此,如果您将 TaskController 分配给 URI 任务,如下所示:

Route::controller('tasks', 'TaskController'); 

并做一个 GET 请求/tasks/info将调用该TaskController@getInfo方法。有关详细信息,请参阅http://four.laravel.com/docs/controllers#restful-controllers 。

在资源丰富的控制器中,有可用的预定义方法与创建的自动路由相匹配。您可以将资源丰富的控制器分配给这样的路由:

Route::resource('lists', 'ListController');

然后,这允许您执行 GET 请求/lists/1,例如,它应该显示 ID 为 1 的列表并调用该ListController@show方法。此处提供完整列表:http: //four.laravel.com/docs/controllers#resource-controllers

要回答第一个问题,除非您使用Route::controller(). 通过手动将路由分配给控制器方法来使用普通控制器,如下所示:

Route::get('about', 'HomeController@about');

或命名路线:

Route::get('about', array(
'as' => 'about',
'uses' => 'HomeController@about'
));
于 2013-04-23T18:39:04.210 回答