我用的是Laravel 5.3.

I have 2 tables :

Articles
---------
id
cat_id
title

Category
---------
id
parent_id
title

I have defined my relations in my models :

// Article model
public function category()
{
    return $this->belongsTo(Category::class);
}

// Category model
public function children() 
{
    return $this->hasMany(Category::class, 'parent_id', 'id');
}   

有没有一种简单的方法用口才有一个列表和文章数量的分类.困难之处在于,我想要将id_parent = 0个类别分组,即我只想显示带有 children 文章计数的父类别.

我试过这样的方法:

    $category = new \App\Models\Category();
    $categoryTable = $category->getTable();

    return $category->leftJoin('article', 'article.cat_id', '=', 'category.id')
        ->whereIn('article.cat_id', function($query)
            {
                $query->select('cat_id')
                    ->from('categories')
                    ->where('categories.parent_id', ???)
                    ->orWhere($this->tableName .'.cat_id', $id);
            })
        ->groupBy('cat_id');

但是我迷路了.

推荐答案

你可以用withCount().可从5.3版本获得

for more info about eloquent visit : https://laravel.com/docs/5.3/eloquent-relationships

Laravel相关问答推荐

Laravel复选框值更新

Laravel:通过数据透视表数据限制多对多Eager 加载

自定义验证在表单请求上始终返回 true laravel

无法找到用户sail:passwd 文件中没有匹配的条目

使用枢轴插入多对多时的Laravel问题

Laravel 如何处理来自浏览器的 PUT 请求?

Laravel belongsTo 关系 - 试图获取非对象的属性

在 laravel 中动态更改时区

Carbon(laravel)处理无效日期

laravel 密码盐存储在哪里?

Laravel excel maatwebsite 3.1 导入,excel 单元格中的日期列返回为未知格式数字.如何解决这个问题?

php Laravel-遇到格式不正确的数值(在字符串上)

Cookie::forget 不工作 laravel 5.1

在 AWS 上找不到 Laravel 5 类Collective\Html\HtmlServiceProvider

Laravel 4 上传图片表单

如果用户未登录 Laravel,则重定向到登录

Laravel 存储链接不适用于生产

配置和测试 Laravel 任务调度

使用 Queue::fake() 测试监听器

laravel - 无法在控制器构造函数中获取会话