Работая над приложением Laravel, я заметил, что создаю методы контроллеров, которые очень похожи. Например, у меня есть модели: Task, Block, Lesson и т. Д. И в каждом контроллере есть очень похожие методы:
public function index()
{
return new GeneralResource(/model/::all());
}
public function show(/model/ $model)
{
return new GeneralResource($model);
}
public function store(/model/Request $request)
{
try {
$model = /model/::create($request->validated());
return response()->json(['status' => 'success']);
} catch (\Exception $e) {
echo $e->getMessage();
}
}
public function update(/model/Request $request, /model/ $model)
{
try {
$model->update($request->validated());
return response()->json(['status' => 'success']);
} catch (\Exception $e) {
echo $e->getMessage();
}
}
public function destroy(/model/ $model)
{
try {
$model->delete();
return response()->json(['status' => 'success']);
} catch (\Exception $e) {
echo $e->getMessage();
}
}
Может быть, я мог бы расширить класс Controller с помощью этих методов и передать параметры в качестве защищенных свойств, но я не уверен, как это можно сделать.
Пожалуйста, помогите.