自我加入Eloquent

时间:2015-06-02 09:53:50

标签: laravel laravel-5 laravel-4 eloquent self-join

你如何写一个雄辩的自我加入?我需要在模型上定义关系吗?

这是我的陈述:

SELECT t2.title FROM products t1, products t2
WHERE t1.id = $id 
AND t2.color_id = t1.color_id AND
t2.id != $id

1 个答案:

答案 0 :(得分:7)

您可以简单地定义与自身的关系。

public function parent()
{
    return $this->belongsTo(self::class, 'color_id');
}

public function children()
{
    return $this->hasMany(self::class, 'color_id');
}