按字符串调用拉拉维尔模型
2022-08-30 15:28:12
是否可以通过字符串调用Laravel模型?
这就是我试图实现的目标,但它失败了:
$model_name = 'User';
$model_name::where('id', $id)->first();
我得到以下异常:
exception 'ErrorException' with message 'Undefined variable: User'
是否可以通过字符串调用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();