2012-01-19 5 views
1

私はコードCakePHPの検索機能

foreach($words as $word) { 

      $search = '%'.$word.'%'; 

      $query['conditions'][]['or'] = array(
       'ProductComponent.codice LIKE' => $search, 
       'ProductComponent.nome'.__('_it', true).' LIKE' => $search, 
       'ComponentType.nome'.__('_it', true).' LIKE' => $search, 
       'Material.nome'.__('_it', true).' LIKE' => $search, 
       'Finish.nome'.__('_it', true).' LIKE' => $search, 
       'ClientCode.client_component_code LIKE' => $search, 
      ); 
     } 

のこの部分を持っていると私はクエリを実行すると、私はこのエラーを有する

Warning (512): SQL Error: 1054: Unknown column 'ClientCode.client_component_code' in 'where clause' [CORE/cake/libs/model/datasources/dbo_source.php, line 684]

このテーブル

CREATE TABLE IF NOT EXISTS `client_codes` (
`id` int(10) NOT NULL auto_increment, 
`user_id` int(10) NOT NULL, 
`product_component_id` int(10) NOT NULL, 
`client_component_code` varchar(255) NOT NULL, 
PRIMARY KEY (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=225 ; 
あります

これはClientCodeモデルです

<?php 
class ClientCode extends AppModel { 
var $name = 'ClientCode'; 
var $belongsTo = array('ProductComponent', 'User'); 
} 
?> 

これらは助けてください...なぜ私は理解していないProductComponentモデルの関係

<?php 
class ProductComponent extends AppModel { 
var $name = 'ProductComponent'; 
var $belongsTo = array('ComponentType', 'Material', 'Finish','Line'); 
var $hasMany = array(
    'Part', 
    'RelatedComponent', 
    'LineRelatedComponent' => array(
     'className' => 'RelatedComponent', 
     'conditions' => array('NOT' => array('LineRelatedComponent.line_id' => NULL)), 
    ), 
    'GenericRelatedComponent' => array(
     'className' => 'RelatedComponent', 
     'conditions' => array('GenericRelatedComponent.line_id' => NULL), 
    ), 
    'CustomPriceList', 
    'PriceList', 
    'ClientCode' 
); 
var $hasAndBelongsToMany = array('Upload'); 

です。ありがとう!

+0

データベースに 'ClientCode.client_component_code'という列がありますか? –

+0

最後の条件だけがうまくいかない、他はうまく動作する –

+0

はい私のデータベースにその列がある –

答えて

1

コンテナを使用していますか?あなたが結合されていないテーブルで条件を実行しようとしているようです。