翻訳動作にタイトルと説明の2つのフィールドが付いたモデルがあります。 翻訳可能なフィールドにいくつかの条件を追加しました。 いつものように、ページ分割では、CakePHPは最初にカウントを行い、すべてのレコードを取得します。 クエリの合計レコードをフェッチ:国際化テーブルはi18n_ タイトルや国際化 _descriptionとしてではなくi18nmodelしかしCakePHP翻訳動作と改ページ数
として参加していないので、
1054: Unknown column 'I18n__description.content' in 'where clause'
:私が得る
SELECT COUNT(DISTINCT(`product`.`id`)) AS COUNT
FROM `products` AS `product`
INNER JOIN `i18n` AS `i18nmodel`
ON (`product`.`id` = `i18nmodel`.`foreign_key`
AND `i18nmodel`.`model` = 'Product'
AND `i18nmodel`.`locale` = 'eng')
LEFT JOIN `categories` AS `category`
ON (`product`.`category_id` = `category`.`id`)
LEFT JOIN `vats` AS `vat`
ON (`product`.`vat_id` = `vat`.`id`)
LEFT JOIN `availables` AS `available`
ON (`product`.`available_id` = `available`.`id`)
WHERE ((`i18n__description`.`content` LIKE '%test%')
OR (`i18n__title`.`content` LIKE '%test%')
OR (`product`.`code` LIKE '%test%'))
をページングがクエリの行(全レコードではない)を取得しようとすると、すべて正常に機能します。これには何か解決策はありますか?
コントローラーのコードは次のようなものだ:
$condition = array();
foreach ($search as $word) {
if (strlen($word) > 0)
$condition[] = array('OR' => array('I18n__description.content LIKE' => '%' . $word . '%','I18n__title.content LIKE' => '%' . $word . '%',
'Product.code LIKE' => '%' . $word . '%'));
}
$conditions = array('AND' => $condition);
$products = $this->paginate($conditions);
コントローラコードを投稿できますか? –
私は条件付きで部品を追加しました。 – mentalic