laravel中的递归外键

时间:2019-03-22 11:02:42

标签: php mysql laravel

我的表tbl_relations中有列

from

tbl_relations table

relation_name_id是同一表中的外键引用ID。
在laravel中,我将从id中选择两个输入,并需要使用外键递归方法从输入一个到第二个输入,直到到达第二个输入为止。

这样,我需要获取收藏集

1 个答案:

答案 0 :(得分:2)

此解决方案可能效率不高,但可以使用:

class Relation extends Model {
     protected $table = 'tbl_relations';
     protected $with = [ 'related' ];

     public function related() {
          return $this->hasOne(Relation::class, 'relation_name_id'); 
     }
}

每次加载Relation模型时,都应触发related关系的加载。

您可以执行以下操作:

Relation::find(1)->related->related->id;

请注意,此解决方案未考虑特定的MySQL优化,因此可能是最慢的解决方案。