我可以说 Laravel 4 中的所有控制器默认都是 RESTful 控制器吗?如何制作非 RESTful 控制器?RESTful 控制器和资源控制器有什么区别?
// routes.php
Route::get('/', 'HomeController');
我可以说 HomeController 是一个 RESTful 控制器吗?
在 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'
));