Можно ли назвать модель Laravel строкой?
Это то, чего я пытаюсь достичь, но его провал:
$model_name = 'User'; $model_name::where('id', $id)->first();
Я получаю следующее исключение:
exception 'ErrorException' with message 'Undefined variable: User'
Да, вы можете это сделать, но вам нужно использовать полное имя класса:
$model_name = 'App\Model\User'; $model_name::where('id', $id)->first();
Если ваше имя модели хранится в чем-то отличном от простой переменной (например, атрибут объекта), вам нужно будет использовать промежуточную переменную, чтобы заставить ее работать.
$model = $this->model_name; $model::where('id', $id)->first();
Попробуй это:
$model_name = 'User'; $model = app("App\Model\{$model_name}"); $model->where('id', $id)->first();