0

我设置了以下 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关系?

4

1 回答 1

0

Can you use contain within bindModel? Never tried it before... but worth a shot.

$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'),
            )
        )
    ));

Actually now that I read your question I'm not really sure what you want. Do you want the user_id of who the person is commenting on? Can you just elaborate on what you want a little more.

于 2011-12-10T16:46:15.633 回答