Laravel - 雄辩的自我关系

Mar*_*123 4 php relationship laravel eloquent laravel-4

我的很多模型和其他代码都在这里并且与这个问题相关:
laravel - Query Builder vs. Eloquent

我有这个查询:

        $recipes = Recipe::whereHas('categories', function($q) use ($cat_id) {
        $q->where('category_id', $cat_id);
    })->with('user')->get();  
Run Code Online (Sandbox Code Playgroud)

如果我选择(示例)ID = 5,效果很好。我得到了 category_id = 5 的所有食谱。

如果...
假设,category_id = 5 的父级的 id = 1(主要类别的 ID 为 1-3,所有子级的 ID 为 4 到 x)。

我现在需要,如果有人点击主类别,在这种情况下,ID = 1,我可以获得与包括孩子在内的主类别相关的所有食谱。所以我从第 1 类和第 5 类(依此类推)中获取所有内容。

我不知道如何设置关系或构建查询。

其次,我还需要把这个功能实现到网站的“高级搜索”方法中,但我想,如果我能解决这个问题,剩下的就“简单”了。

帮助表示赞赏。谢谢!

The*_*pha 6

根据title您在问题中描述的细节和细节让我认为,您想使用同一模型和id字段的另一个字段/列创建与模型本身的关系,在这种情况下,您可以使用类似的方法创建这样的关系这个:

class Category extends Eloquent {

    public function recipes()
    {
        return $this->hasMany('Category', 'category_id');
    }

}
Run Code Online (Sandbox Code Playgroud)

根据这种关系,你的categories表应该包含主键id和另一个字段category_id来建立关系,如果一个id1,如果category_id包含,1那么id=1和之间存在关系category_id=1

几天前我写了一篇关于同一件事的文章,你可以阅读这篇文章以获得我正在谈论的更好的想法:LARAVEL – 模型与自身的关系