douye1940 2016-11-30 07:30
浏览 105

Yii:限制HAS_MANY关系

Simple story. I have users and blog-posts, users are related to blog-posts as ONE to MANY. I would like to show users their profile along with the 5 most recent posts they wrote:

/**
     * @return array relational rules.
     */
    public function relations()
    {
        // NOTE: you may need to adjust the relation name and the related
        // class name for the relations automatically generated below.
        return array(
            'posts' => array(self::HAS_MANY, 'BlogPost', 'userId')
        );
    }

I am trying to apply limit:

$user = User::model()->with(array(
            'posts' => array('order' => 'updatedAt DESC'),
            ->findAll(array(
                'condition' => 'userId = :userId AND ...',
                'params' => array(
                    'userId' => $userId
                ),
                'limit' => 5
            ));

But Yii framework ignores that. How can I accomplish it?

It's Yii 1.1.

  • 写回答

2条回答 默认 最新

  • douqiao5552 2016-11-30 09:22
    关注

    You have to include the limit in the with:

    $user = User::model()
        ->with(array(
            'posts' => array(
                'order' => 'updatedAt DESC',
                'limit' => 5
            )
        ))->findAll(array(
            'condition' => 'userId = :userId AND ...',
            'params' => array(
                'userId' => $userId
            ),
    
        ));
    
    评论

报告相同问题?

悬赏问题

  • ¥15 Python输入字符串转化为列表排序具体见图,严格按照输入
  • ¥20 XP系统在重新启动后进不去桌面,一直黑屏。
  • ¥15 opencv图像处理,需要四个处理结果图
  • ¥15 无线移动边缘计算系统中的系统模型
  • ¥15 深度学习中的画图问题
  • ¥15 java报错:使用mybatis plus查询一个只返回一条数据的sql,却报错返回了1000多条
  • ¥15 Python报错怎么解决
  • ¥15 simulink如何调用DLL文件
  • ¥15 关于用pyqt6的项目开发该怎么把前段后端和业务层分离
  • ¥30 线性代数的问题,我真的忘了线代的知识了