Создание контроллера ресурсов в Laravel: пошаговое руководство

Чтобы создать контроллер ресурсов в Laravel, вы можете выполнить следующие действия:

Шаг 1. Создайте контроллер
Выполните следующую команду в своем терминале, чтобы создать контроллер ресурсов:

php artisan make:controller ResourceController --resource

Эта команда создаст новый контроллер с именем ResourceControllerс необходимым шаблонным кодом для ресурсоемких операций.

Шаг 2. Определите маршруты
Далее вам необходимо определить маршруты для ваших изобретательных операций в файле routes/web.php. Вы можете использовать метод Route::resourceдля краткого определения маршрутов. Вот пример:

use App\Http\Controllers\ResourceController;
Route::resource('resources', ResourceController::class);

Это создаст все маршруты, необходимые для изобретательного контроллера, включая index, create, store, show, редактировать, обновить, уничтожитьи т. д.

Шаг 3. Реализация методов контроллера
Внутри класса ResourceControllerвы можете реализовать методы, связанные с каждым маршрутом. Вот некоторые часто используемые методы и соответствующие им действия:

use App\Models\Resource;
use Illuminate\Http\Request;
class ResourceController extends Controller
{
    public function index()
    {
        $resources = Resource::all();
        return view('resources.index', compact('resources'));
    }
    public function create()
    {
        return view('resources.create');
    }
    public function store(Request $request)
    {
        // Validate and store the resource
        // ...
        return redirect()->route('resources.index');
    }
    public function show($id)
    {
        $resource = Resource::findOrFail($id);
        return view('resources.show', compact('resource'));
    }
    public function edit($id)
    {
        $resource = Resource::findOrFail($id);
        return view('resources.edit', compact('resource'));
    }
    public function update(Request $request, $id)
    {
        // Validate and update the resource
        // ...
        return redirect()->route('resources.index');
    }
    public function destroy($id)
    {
        $resource = Resource::findOrFail($id);
        $resource->delete();
        return redirect()->route('resources.index');
    }
}

Это некоторые из наиболее часто используемых методов в контроллере ресурсов, но вы можете настроить их в соответствии со своими конкретными требованиями.