cakephp hoe een geneste join te doen

ik heb de volgende cakephp-bindende relaties opgezet. ze werken maar, maar hoe kan het gebruikersrecord van de opmerking ook in de resultaten worden genest?

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

dit werkt geweldig om een ​​resultaat te krijgen zoals:

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

        [User] => Array
            (
                [id] => 7
                [username] => admin
                [password] => d0557b9de8bb6f7fb3248a017c7b67a6
                [email] => [email protected]
                [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
                    )

            )

    )

)

mijn vraag is hoe ik de gerelateerde gebruiker ook op de opmerking kan krijgen? is er een manier om in mijn query de hasone-relatie tussen opmerking en gebruiker te nesten?

0

1 antwoord

Kun je contain binnen bindModel gebruiken? Nooit eerder geprobeerd ... maar het proberen waard.

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

Eigenlijk nu ik je vraag heb gelezen weet ik niet precies wat je wilt. Wilt u de gebruikersnaam van de persoon waarop de persoon reageert? Kun je wat verder uitleggen wat je wilt?

0
toegevoegd