Итак, я новичок в структуре Laravel с версии 4 и задаюсь вопросом, как создать и использовать контроллеры RESTful. Прочитав документацию, я немного смущен относительно разницы между контроллерами RESTful и контроллерами ресурсов.
При определении контроллера RESTful, согласно документам, предлагается сделать следующее в routes.php
:
Route::controller('posts', 'PostController');
В PostController
, мы определяем методы класса путем префикса имени метода с помощью глагола HTTP, который мы хотели бы использовать? Например:
class PostController extends \BaseController {
public function getIndex()
{
//
}
}
Однако он также описывает способ создания контроллеров ресурсов в файле routes.php
следующим образом: Route:: resource ('posts', 'PostController');
И в PostController.php
мы определяем методы без префикса с помощью HTTP-глагола.
class PostController extends \BaseController {
public function index()
{
//
}
}
В чем разница между этими двумя? И когда мы используем один вместо другого, и почему?
Кроме того, следует использовать Route::controller('posts', 'PostController');
или Route::resource('posts', 'PostController');
для передачи маршрутизации в контроллер или мы должны определить каждый маршрут вручную, например ниже:
Route::get('/users', '[email protected]');
Route::get('/users/create', '[email protected]');
Route::post('/users', '[email protected]');
Route::get('/users/{id}', '[email protected]');
Route::get('/users{id}/edit', '[email protected]');
Route::put('/users', '[email protected]');
Route::delete('/users', '[email protected]');