Я создал базовый контроллер и хочу динамически напечатать подсказку для метода store, чтобы использовать соответствующий класс Form Request. Как я могу это сделать?
Вот мой базовый контроллер (упрощенно):
class BaseController extends Controller
{
protected $baseClass;
protected $baseResourceClass;
protected $baseStoreRequestClass;
public function index()
{
$items = $baseClass::paginate(10);
return $baseResourceClass::collection($items);
}
// the $baseStoreRequestClass doesn't work, and that's what I'm trying to figure it out
public function store(**$baseStoreRequestClass** $request)
{
$validatedFields = $request->validated();
$newItem = $baseClass::create($validatedFields);
return new $baseResourceClass($newItem);
}
}
Затем из расширяющегося контроллера мне нужно будет просто объявить 3 переменные. Пример:
class UserController extends BaseController
{
protected $baseClass = '\App\User';
protected $baseResourceClass = '\App\Http\Resources\UserResource';
protected $baseStoreRequestClass = '\App\Http\Requests\StoreUser';
}
class ProductController extends BaseController
{
protected $baseClass = '\App\Product';
protected $baseResourceClass = '\App\Http\Resources\roductResource';
protected $baseStoreRequestClass = '\App\Http\Requests\StoreProduct';
}
Как я могу заставить работать $ baseStoreRequestClass ?