Par*_*oni 18 php laravel laravel-5.1
是否可以通过字符串调用Laravel模型?
这是我想要实现但它失败的原因:
$model_name = 'User';
$model_name::where('id', $id)->first();
Run Code Online (Sandbox Code Playgroud)
我得到以下异常:
exception 'ErrorException' with message 'Undefined variable: User'
Run Code Online (Sandbox Code Playgroud)
pat*_*cus 36
是的,您可以这样做,但您需要使用完全限定的类名:
$model_name = 'App\Model\User';
$model_name::where('id', $id)->first();
Run Code Online (Sandbox Code Playgroud)
如果您的模型名称存储在除普通变量之外的其他内容(例如,对象属性),则需要使用中间变量才能使其生效.
$model = $this->model_name;
$model::where('id', $id)->first();
Run Code Online (Sandbox Code Playgroud)
试试这个:
$model_name = 'User';
$model = app("App\Model\{$model_name}");
$model->where('id', $id)->first();
Run Code Online (Sandbox Code Playgroud)