検索をした時の結果にもページネーションをつけたいのですが、条件が複数の場合
Errorが出てしまいます。
php
1$search=isset($this->request->data["search"]) ? $this->request->data["search"] : "";//曖昧検索 2$cat=isset($this->request->data["cat"]) ? $this->request->data["cat"] : "";//カテゴリ 3$subcat=isset($this->request->data["subcat"]) ? $this->request->data["subcat"] : "";//サブカテゴリ 4 5//カテゴリーid検索 6if($subcat!=""){ 7 $cat_search=$subcat; 8}else if($cat!=""){ 9 $cat_search=$cat; 10} 11 12$search_result=$products->find() 13->select(['id','sku','name','created']); 14//曖昧検索の場合 15if($search!=""){ 16 $search_result->where([ 17 'OR'=>[['sku like'=>'%'.$search.'%'],['name like'=>'%'.$search.'%']] 18 ]); 19}//if($search!="") 20$search_result->order(['id'=>'ASC']) 21->contain('categories'); 22 23foreach($search_result as $search_results){ 24 //カテゴリー検索の場合 25 if($cat_search!="" && $search_results['categories'][0]->id == $cat_search){ 26 $product_list = $this->paginate($search_results); 27 //カテゴリー検索はされてない場合 28 }else if($cat_search==""){ 29 $product_list = $this->paginate($search_results); 30 } 31}//foreach
曖昧検索のみで、foreachで回す前にpaginateを使えばきちんとページネーションができるのですが、containしたcategoriesを検索に含める上記のようなやりかたではpaginateは使えないでしょうか?
エラーは
Call to undefined method App\Model\Entity\Product::alias()
と出ます。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー