Laravel:查询表中的无子元素

时间:2017-12-05 12:01:01

标签: php laravel eloquent

我有这个包含所有类别的简单表:

类别: ID |名称| parentId的

使用Eloquent,如何查询所有没有孩子的类别?

2 个答案:

答案 0 :(得分:1)

你必须建立一个关系,然后你可以使用以下

$query = Category::query();
$query->whereDoesntHave('child');
$query->get();

或最简单的是

Category::whereNull('parent_id')->get();

答案 1 :(得分:0)

您可以执行以下操作:

Category::whereNull('parent_id')->get();

但最好在模型中设置'子'关系并使用它来实现:

<强> Category.php

public function children()
{
    return $this->hasMany('App\Category', 'parent_id', 'id');
}

<强>用法

Category::whereDoesntHave('children')->get();