Чтобы создать контроллер ресурсов в 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');
}
}
Это некоторые из наиболее часто используемых методов в контроллере ресурсов, но вы можете настроить их в соответствии со своими конкретными требованиями.