我正在尝试加载由变量类名定义的关系。这是这样的:
class Dashboard extends Model {
public function modules(){
return $this->belongsToMany('App\Module');
}
}
class Module extends Model {
public function model(){
return $this->hasOne($this->model_class);
}
}
所以"模型" attribute是类$this->model_class
当我有一个Module对象并调用
时 $this->model
我得到了预期的结果。但是当我尝试做的时候
$dashboard->modules()->with('model')->get()
我收到此错误:'Symfony\Component\Debug\Exception\FatalErrorException' with message 'Class name must be a valid object or a string'
。我假设发生了这种情况,因为在实例化Module类之前,没有model_class
属性,因此它无法急于加载模型。在这种情况下如何使用预先加载?谢谢。