cakephp как найти принадлежит по id - PullRequest
2 голосов
/ 08 декабря 2011

Есть ли способ в CakePHP использовать ORM для получения элемента, который принадлежит определенному дочернему элементу.Например, я должен был получить соответствующую запись Post для определенных записей комментариев.

Это моя модель комментариев:

var $belongsTo = array(
    'Post' => array(
        'className' => 'Post',
        'foreignKey' => 'post_id',
        'conditions' => '',
        'fields' => '',
        'order' => ''
    )
);

Я пытался это сделать, но это откатывает каждое сообщение, даже теу которого нет комментария, к которому я обращаюсь:

$this->Post->contain('Comment');
$results = $this->Post->find('all', array(
    'contain' => array(
        'Comment' => array(
            'conditions' => array(
                'id' => 15
           )
        )
)));

Есть ли другой способ сделать это?

Ответы [ 2 ]

0 голосов
/ 08 декабря 2011

мои исследования привели меня к этому сообщению, касающемуся проблемы с: http://nuts -and-bolts-of-cakephp.com / 2008/07/17 / forcing-an-sql-join-in-cakephp/

, поэтому мое окончательное решение было следующим:

    $this->Post->unbindModel(array('hasMany' => array('Comment')));

    $results = $this->Post->bindModel(array('hasOne' => array(
            'Comment' => array(
                'foreignKey' => false,
                'conditions' => array('Comment.post_id = Post.id'))
        )));

    $results = $this->Post->find('all', array(
                'conditions' => array(
                    'Comment.id' => 10
                )));

не красиво, но выполняет свою работу:)

0 голосов
/ 08 декабря 2011

Вы уверены, что вам не нужно указывать модель в ваших условиях?

Например:

$this->Post->contain('Comment');
$results = $this->Post->find('all', array(
    'contain' => array(
        'Comment' => array(
            'conditions' => array(
                'Comment.id' => 15
           )
        )
)));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...