これは状況です:
カートは商品に属します。製品はカテゴリに属します。
これは私のクエリです:
$results = $this->Cart->find('all',
array(
'contain' => array(
'Product' => array('Category')
),
'conditions'=>array(
'OR' => array(
'Product.title LIKE' => "%$query%",
'Category.name LIKE' => "%$query%"
)
),
'fields'=>array('Product.title', 'Category.name'))
debug($results); exit;
クエリは機能しません!! これを見てください:
Error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'Category.name' in 'field list'
SQL Query: SELECT `Product`.`title`, `Category`.`name`, `Product`.`id` FROM `my_db`.`carts` AS `Cart` LEFT JOIN `my_db`.`products` AS `Product` ON (`Cart`.`product_id` = `Product`.`id`) WHERE ((`Product`.`title` LIKE '%apple%') OR (`Category`.`name` LIKE '%apple%'))
ご覧のとおり、カテゴリ データは製品に添付されていません !! 単純な条件 (例: 'Category.name LIKE' => "%$query%") で同じクエリを試すと、クエリは機能します!! 問題はOR条件にあると思いますが、解決できません...
提案がありますか?
事前にThx