我希望有一个基于类名的动态关系,它被存储为远程相关模型的属性 .

有很多不同的类名,所以我不想 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来实现此目的吗?

在此先感谢您的任何帮助 .