когда я использую findby ($ id) с условиями ассоциации, я получаю ошибку SQL: 1054 - PullRequest
2 голосов
/ 17 декабря 2011

Я использую эту переменную, чтобы найти комментарии, связанные со статьями ..

 $comment = $this->Article->Comment->findAllById($id);

Я получаю ошибки, когда добавляю такие условия ..

  $comment = $this->Article->Comment->findAllById($id,array('conditions' => array('Comment.status' => 1)));

Я вижу эту ошибку>>

Warning (512): SQL Error: 1054: Unknown column 'Comment.' in 'field list' [CORE\cake\libs\model\datasources\dbo_source.php, line 684]
Query: SELECT DISTINCT `Comment`.`` FROM `comments` AS `Comment` LEFT JOIN `articles` AS `Article` ON (`Comment`.`article_id` = `Article`.`id`) WHERE `Comment`.`id` = 15 

1 Ответ

2 голосов
/ 17 декабря 2011

Ознакомьтесь с руководством для метода findAllBy<field_name>().

Вы заметите, что вторым параметром является массив fields.

Я бы порекомендовал использовать стандартный метод поиска Cake, что-то вроде:

$comment = $this->Article->Comment->find('all', array(
  'conditions' => array(
    'Comment.id'     => $id,
    'Comment.status' => 1
  )
));
...