【问题标题】:cakephp how to do a nested joincakephp 如何进行嵌套连接
【发布时间】:2011-12-06 23:17:03
【问题描述】:

我设置了以下 cakephp 绑定关系。他们正在寻找,但如何将评论的用户记录也嵌套在结果中?

      $this->Posts->bindModel(array(
        'hasOne' => array(
            'User' => array(
                'foreignKey' => false,
                'type' => 'INNER',
                'conditions' => array('Posts.user_id = Users.id')
            )
        ),
        'hasMany' => array(
            'Comment' => array(
                'foreignKey' => 'post_id',
                'conditions' => array('Comment.active' => 1)
            )
        )
    ));

这非常适合获得如下结果:

[1] => Array
    (
        [Posts] => Array
            (
                [title] => test post
                [body] => test body
                [published] => 
                [id] => 15
            )

        [User] => Array
            (
                [id] => 7
                [username] => admin
                [password] => d0557b9de8bb6f7fb3248a017c7b67a6
                [email] => frankhinchey@gmail.com
                [group_id] => 1
                [created] => 2011-11-21 15:19:09
            )

        [Comment] => Array
            (
                [0] => Array
                    (
                        [id] => 10
                        [user_id] => 7
                        [post_id] => 15
                        [text] => testdfasdfdsfasdfasdfasdfasd
                        [active] => 1
                        [created] => 2011-12-02 20:50:57
                        [published] => 2011-12-05 13:58:25
                    )

                [1] => Array
                    (
                        [id] => 11
                        [user_id] => 7
                        [post_id] => 15
                        [text] => this is a test comment
                        [active] => 1
                        [created] => 2011-12-02 21:31:56
                        [published] => 2011-12-03 11:34:32
                    )

            )

    )

)

我的问题是如何获得相关用户的评论?有没有办法在我的查询中嵌套评论和用户之间的 hasone 关系?

【问题讨论】:

    标签: php cakephp binding nested has-one


    【解决方案1】:

    你可以在 bindModel 中使用 contains 吗?以前从未尝试过……但值得一试。

    $this->Posts->bindModel(array(
            'hasOne' => array(
                'User' => array(
                    'foreignKey' => false,
                    'type' => 'INNER',
                    'conditions' => array('Posts.user_id = Users.id')
                )
            ),
            'hasMany' => array(
                'Comment' => array(
                    'foreignKey' => 'post_id',
                    'conditions' => array('Comment.active' => 1),
                    'contain' => array('User'),
                )
            )
        ));
    

    实际上,现在我阅读了您的问题,我不确定您想要什么。你想要这个人评论的用户ID吗?你能详细说明你想要什么吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-31
      • 1970-01-01
      • 1970-01-01
      • 2013-04-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-09
      相关资源
      最近更新 更多