gpt4 book ai didi

php - 通过事件记录或查询获取拥有最多文章及其数量的用户

转载 作者:行者123 更新时间:2023-11-29 01:55:49 25 4
gpt4 key购买 nike

我想得到写了最多文章的用户。我使用 ActiveRecord 以两种方式做得很好,如下所示:

$table = Articles::find()
->select('articles.*, COUNT(*) AS cnt')
->with('user','userDetails')
->groupBy('articles.user_id')
->orderBy(('cnt DESC'))
->limit(10)
->offset($offset)
->all();

并使用如下查询:

$query = (new Query())
->select('articles.user_id, COUNT(*) AS num_articles')
->from('articles')
->join('LEFT JOIN', 'user_details', 'user_details.user_id = articles.user_id')
->groupBy('articles.user_id')
->orderBy('num_articles DESC')
->limit(10)
->offset($offset)
->all();
  1. 问题是 ActiveRecord 为我提供了我需要的进一步信息 userDetails。但是我没有得到应该在 cnt
  2. 上的用户文章数量
  3. 通过查询,我获得了 user_id 和文章数量。但是我没有通过加入 userDetails 来让它工作。所有这些都不起作用:LEFT JOINRIGHT JOININNER JOIN

为了学习,我有兴趣解决这两个问题,但具体而言,我需要有关 ActiveRecord 问题的帮助。

最佳答案

好吧,我为 ActiveRecord 解决了这个问题。 ActiveRecords 在模型中需要一个 public $var;。因此,要获得您必须将提到的 public... 添加到您的模型中的金额,以便在我的情况下:

public $cnt; 扩展 Articles

的 ActiveRecord

现在我可以使用问题中的给定请求访问它。但这只是解决了第一点。对于更复杂的查询,我仍然对第二种方式感兴趣。

关于php - 通过事件记录或查询获取拥有最多文章及其数量的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29701450/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com