我可以说Laravel 4中的所有控制器默认都是RESTful控制器吗? 如何制作非RESTful控制器? RESTful控制器和资源控制器之间有什么区别?
// routes.php
Route::get('/', 'HomeController');
我可以说HomeController是一个RESTful控制器吗?
答案 0 :(得分:5)
在RESTful控制器中,方法名称以他们应响应的HTTP谓词作为前缀,因此如果您将TaskController分配给URI任务,如下所示:
Route::controller('tasks', 'TaskController');
并向/tasks/info
发出可以调用TaskController@getInfo
方法的GET请求。有关详细信息,请参阅http://four.laravel.com/docs/controllers#restful-controllers。
在资源丰富的控制器中,有可用的预定义方法与创建的自动路由匹配。您可以将资源丰富的控制器分配给路径,如下所示:
Route::resource('lists', 'ListController');
这允许您对/lists/1
执行GET请求,例如,该请求应显示ID为1的列表并调用ListController@show
方法。完整列表可在此处获取:http://four.laravel.com/docs/controllers#resource-controllers。
要回答第一个问题,除非您使用Route::controller()
分配控制器,否则默认情况下并非所有控制器都不是RESTful。通过手动分配路径到控制器方法来使用普通控制器,如下所示:
Route::get('about', 'HomeController@about');
或指定路线:
Route::get('about', array(
'as' => 'about',
'uses' => 'HomeController@about'
));