动态在Laravel / Eloquent中有很多关系

时间:2017-02-05 02:37:32

标签: php mysql laravel laravel-5 eloquent

我希望基于类名建立动态关系,该类名作为属性存储在远程相关模型上。

有很多不同的类名,所以我不想建立很多关系。它有点复杂但必须这样。

@staticmethod

尝试以这种方式执行此操作将无法在查询中查找,因为它并不总是具有“子”模型信息(因为function subjectvotes() { $className = $this->masterCourse->subject->class_name; return $this->hasMany($class)->orderBy('value'); } 尚未运行)。另一个问题是它每次都运行相同的->get()查询 - 不理想。

在开始关系查询之前,我可以运行它来分别获取类名和表名:

$this->parent->grandparent

但是如何将这种情况融入关系中我还不确定:

$className = $masterCourseModel->subject->class_name;
$tableName = ( new $className )->getTable();

如果没有为每个可能的类创建很多关系,我如何提供$masterCourseModel->studentCourse()->with('subjectvotes')->get(); 来创建动态的hasMany关系,或者我可以通过添加新的查询范围并输入{{1那个方式还是$className

提前感谢您的任何帮助。

0 个答案:

没有答案