我希望有一个基于类名的动态关系,它被存储为远程相关模型的属性 .
有很多不同的类名,所以我不想 Build 很多关系 . 这有点复杂,但必须是这样 .
function subjectvotes() {
$className = $this->masterCourse->subject->class_name;
return $this->hasMany($class)->orderBy('value');
}
尝试这样做赢了't work mid-query because it doesn' t总是有'child'模型信息(因为 ->get()
hasn 't been run). Another issue with this is it'每次运行相同的 $this->parent->grandparent
查询 - 不理想 .
在我开始关系查询之前,我可以运行它来分别获取类名和表名:
$className = $masterCourseModel->subject->class_name;
$tableName = ( new $className )->getTable();
但是如何将这种情况融入关系中我还不确定:
$masterCourseModel->studentCourse()->with('subjectvotes')->get();
如果不为每个可能的类创建很多关系,如何提供 $className
来创建动态的hasMany关系,或者我可以通过添加新的查询范围并以这种方式输入 $tableName
或_1679785来实现此目的吗?
在此先感谢您的任何帮助 .