表題の件で、いろいろな文言でググっても解決策がわからず・・・
助けてください。
AAAテーブルにLEFT JOINにてBBBテーブルを結合し、BBB内を検索したいのですが、
現状では、AAAしか検索できません。
DebugKitでSQLログを見ると、AAAテーブルをLIMIT検索し、AAA.IDをもとに、BBBテーブルをWHERE INにて検索してるみたいです。それなので、BBB側を検索するとそもそもそんなカラムはないとエラーになります。
なので、$paginateのコメントアウトしてる'join'を追加すると・・・
検索はできるのですが。paginateのカウント処理でLEFT JOINが同じBBBを2回行いSQLエラーになります。
モデル側
php
1class AmznGiftCode extends AppModel { 2 public $hasOne = array('AmznGiftCodeUse'); 3}
コントローラー
php
1class xxxxxController extends AppController { 2 3 var $uses = array('AAA',"BBB"); 4 5 //読み込むコンポーネントの指定 6 public $components = array('Paginator'); 7 8 public $paginate = array( 9 'limit' => 50, 10 'maxLimit' => 1000, 11 'order' => array( 12 'AmznGiftCode.id' => 'asc' 13 ), 14 'group'=>"AmznGiftCode.id", 15 'paramType' => 'querystring' 16 // ,'joins' => array( 17 // array( 18 // 'type' => 'LEFT', 19 // 'table' => 'bb_bb_bb', 20 // 'alias' => 'BBB', 21 // 'conditions' => 'BBB.aaa_id = AAA.id' 22 // ) 23 // ) 24 ); 25〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 26public function index(){ 27 $this->AAA->unbindModel(array('hasOne' => array('BBB'))); 28 $this->AAA->bindModel(array('hasMany' => array('BBB'=> array('order' => 'id DESC'))),true); 29〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 30 31 $conditions = array(); 32 if(isset($this->params['url']['text']) && !empty($this->params['url']['text'])){ 33 //Formの値を取得 34 $text = $this->params['url']['text']; 35 //検索文字を空白(全角又は半角)で区切って配列$keywordsに代入 36 $keywords = preg_split("/ |\s/",$text); 37 //配列$keywordsの数だけ繰り返して検索条件を$conditionsに代入 38 foreach($keywords as $keyword){ 39**AAA.claim_codeは検索できるけど、BBB.emailが検索できない** 40 $conditions[] = "`AAA`.`claim_code` like '%$keyword%' OR `BBB`.`email` like '%$keyword%'"; 41 } 42 $search_condition['text'] = $text; 43 } 44 45 //ページングパラメーター設置 46 $this->Paginator->settings = $this->paginate; 47 48 $data = $this->Paginator->paginate('AAA',$conditions); 49 $this->set('AAAView', $data);
この情報だけで分かりますか?必要情報あれ追記いたします。
お分かりになる方よろしくお願いします。
お力添えをお願いいたします。
ーー 環境情報 ーー
CAKE_VERSION:2.7.5
Apache:2.4.16
PHP:5.5.28
MySQL:5.6.26
ーーーーーーーーーー
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/12/14 04:43
退会済みユーザー
2015/12/14 05:11
退会済みユーザー
2015/12/14 06:25 編集
2015/12/22 06:05
退会済みユーザー
2015/12/22 06:21