You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Yii2的Ticket模型中创建关联以获取最后一条评论?

实现工单最后一条评论的关联方法

直接修改getLastComment方法,通过关联查询并添加排序、限制条件,即可获取工单的最后一条评论:

class Ticket extends ActiveRecord
{
    public function getComments(): ActiveQuery
    {
        return $this->hasMany(Comment::class, ['ticket_id' => 'id']);
    }

    public function getHandler(): ActiveQuery
    {
        return $this->hasOne(User::class, ['id' => 'handler_id']);
    }

    public function getLastComment(): ActiveQuery
    {
        return $this->hasOne(Comment::class, ['ticket_id' => 'id'])
            ->orderBy(['datetime' => SORT_DESC])
            ->limit(1);
    }
}

关键说明:

  • 用hasOne关联,因为每个工单最多只会有一条“最后评论”
  • 通过orderBy(['datetime' => SORT_DESC])按评论时间倒序排列,确保最新评论排在首位
  • 加limit(1)限制只返回第一条结果,也就是目标的最后一条评论

内容的提问来源于stack exchange,提问作者Gote

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 04:57:01