Команда make:controller
Команда make:controller создаёт новый класс контроллера
в директории app/Http/Controllers. По умолчанию
генерируется пустой контроллер без методов.
С помощью дополнительных опций можно создать ресурсный
контроллер с методами для CRUD-операций или
контроллер с методами для API.
Синтаксис
php artisan make:controller NameController
Пример
Давайте создадим простой контроллер для управления статьями:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class ArticleController extends Controller
{
public function index()
{
$articles = ['article 1', 'article 2', 'article 3'];
return view('articles.index', ['articles' => $articles]);
}
public function show($id)
{
$article = "article {$id}";
return view('articles.show', ['article' => $article]);
}
}
Для генерации этого контроллера выполните команду:
php artisan make:controller ArticleController
Пример
Создадим ресурсный контроллер с полным набором методов
для CRUD-операций. Для этого используется опция --resource:
php artisan make:controller PostController --resource
Результат выполнения команды:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class PostController extends Controller
{
public function index()
{
//
}
public function create()
{
//
}
public function store(Request $request)
{
//
}
public function show($id)
{
//
}
public function edit($id)
{
//
}
public function update(Request $request, $id)
{
//
}
public function destroy($id)
{
//
}
}
Пример
Создадим API-контроллер с использованием опции --api.
Такой контроллер не содержит методов create и edit,
так как они не нужны для API:
php artisan make:controller ApiPostController --api
Результат выполнения команды:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class ApiPostController extends Controller
{
public function index()
{
//
}
public function store(Request $request)
{
//
}
public function show($id)
{
//
}
public function update(Request $request, $id)
{
//
}
public function destroy($id)
{
//
}
}
Пример
Создадим контроллер в отдельной директории внутри
app/Http/Controllers. Для этого нужно указать
путь через слеши:
php artisan make:controller Admin/UserController
Результат выполнения команды:
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class UserController extends Controller
{
public function index()
{
$users = ['user 1', 'user 2', 'user 3', 'user 4'];
return response()->json($users);
}
}
Результат выполнения метода index:
["user 1", "user 2", "user 3", "user 4"]
Смотрите также
-
команда
make:model,
которая создаёт новую модель Eloquent -
команда
make:migration,
которая создаёт новый файл миграции -
команда
make:seeder,
которая создаёт новый класс сидера -
команда
make:request,
которая создаёт новый класс запроса