Как говорит название, у меня возникают проблемы с присоединяется к моей находке-запросу, с ошибками, возникающих как:CakePHP: стыковка внутри содержит
preg_match() expects parameter 2 to be string, array given [CORE/cake/libs/model/behaviors/containable.php, line 301]
Я попытался добавить joins
в массив там, но это ничего не изменило.
Это параметры, которые я передаю методу поиска.
$options = array(
'contain' => array(
'Answer' => array(
'conditions' => array('Answer.type' => 'answer'),
'joins' => array(
$this->votesJoin()
),
'Comment' => array(
'conditions' => array('Comment.type' => 'comment'),
'joins' => array(
$this->votesJoin()
)
)
),
'Comment' => array(
'conditions' => array('Comment.type' => 'comment'),
'joins' => array(
$this->votesJoin()
)
),
'User',
'Tag' => array()
),
'joins' => array(
$this->votesJoin()
),
'conditions' => array(
'Question.id' => $id
)
);
return $this->find('first', $options);
с votesJoin()
возвращение следующего массива.
(
[table] => (SELECT Vote.node_id, SUM(value) as total FROM votes AS `Vote` WHERE 1 = 1 GROUP BY `Vote`.`node_id` )
[alias] => Vote
[conditions] => Vote.node_id = Question.id
)
То, что я пытаюсь сделать: Каждый пользователь может вверх/downvote узел (вопрос/ответ/комментарий). При соединении я пытаюсь добавить сумму этих голосов. database http://github.com/navale/QA/wiki/img/datamodel.png
поэтому вы хотите получить: вопрос, комментарии по вопросу, ответы, комментарии по ответам и сумму голосов за все эти элементы .. и все в одном запросе .. кажется довольно амбициозным мне = P – pleasedontbelong
На, я знаю, что мне понадобятся разные вопросы по вопросу, ответам и комментариям, но я * хотел бы присоединиться к голосам к этим запросам ... – marijnvdwerf
Ваш '$ this-> voteJoin()' возвращает массив? Тогда вы не должны обертывать его еще одним массивом. – lxa