Один из простейших способов создания контроллера - это с помощью artisan:
php artisan make:controller BaseController
Результат выполненной команды:
namespace App\Http\Controllers; use Illuminate\Http\Request; class BaseController extends Controller { // }
Реализация экшна в контроллере:
namespace App\Http\Controllers; use Illuminate\Http\Request; class BaseController extends Controller { public function index(){ echo 'Ok'; } }
Созданные экшны необходимо привязывать в маршрутизаторе routes/web.php
.
Привязка экшна контроллера к get-запросу:
Route::get('/', 'BaseController@index');
Ресурсные контроллеры
Привязка ресурсного контроллера:
Route::resource('tasks', 'TasksController');
Создание ресурсного контроллера:
php artisan make:controller TasksController --resource
Привязка массива ресурсных контроллеров:
Route::resources(['tasks' =>'TasksController']);
Ресурсные контроллеры содержат следующие методы запроса и обрабатывающие их экшны:
Verb | URI | Action | Route Name |
---|---|---|---|
GET | /photos |
index | photos.index |
GET | /photos/create |
create | photos.create |
POST | /photos |
store | photos.store |
GET | /photos/{photo} |
show | photos.show |
GET | /photos/{photo}/edit |
edit | photos.edit |
PUT/PATCH | /photos/{photo} |
update | photos.update |
DELETE | /photos/{photo} |
destroy | photos.destroy |
RESTFull API контроллеры
Создание контроллера для API
php artisan make:controller MySampleResourceController --api
Привязка контроллера-api:
Route::apiResource('tasks', 'TasksController');
Имеется возможность создать контроллер с подключенной моделью.
php artisan make:controller TestController --api --model=User
Или:
php artisan make:controller TestController --model=User
Практика