Hello I am developing an application with a Laravel api server and a C# Winforms frontend. The application has many database models, but most of them consist only in an id field and a name field. No more operations than storing and retrieving that data is needed. The data can't be combined into one table (technically is possible, but it would be a mess) because is totally different data,from postal codes and associated city to families of products.
So I thought, as in C# I could make a generic form, if there is possible to make this in Laravel as it will speed up my work too much.
Edit: Here I attach one example controller I want to make it Generic.
<?php
namespace App\Http\Controllers;
use App\Http\Requests\LocalidadRequest;
use App\Localidad;
use Illuminate\Http\Request;
class LocalidadsController extends Controller
{
public function index()
{
return response()->json(array("data" => Localidad::all(), "error" => 0), 200);
}
public function show(Localidad $localidad)
{
return $localidad;
}
public function store(LocalidadRequest $request)
{
$localidad = Localidad::create($request->all());
return response()->json($localidad, 201);
}
public function update(LocalidadRequest $request, Localidad $localidad)
{
$localidad->update($request->all());
return response()->json($localidad, 201);
}
public function delete(Localidad $localidad)
{
$localidad->delete();
return response()->json(null, 204);
}
}
I would like to generalize this controller like this (this isn't real code):
public function index()
{
return response()->json(array("data" => ??::all(), "error" => 0), 200);
}
public function show(Model $routeModel)
{
return $routeModel;
}
public function store(CommonRequest $request)
{
$routeModel = ??::create($request->all());
return response()->json($routeModel, 201);
}
public function update(CommonRequest $request, Model $routeModel)
{
$routeModel->update($request->all());
return response()->json($localidad, 201);
}
public function delete(Model $routeModel)
{
$routeModel->delete();
return response()->json(null, 204);
}
Thanks