御世話になります。
bake から自動生成した商品一覧画面(index.ctp)を書き換えて、商品idが[asc]順になるようにしました。
cakephp3
1public function index() 2 { 3 $this->paginate = [ 4 'contain' => [], 5 'order' => array( 6 'id' => 'asc' 7 ) 8 ]; 9 $products = $this->paginate($this->products); 10 $this->set(compact('products')); 11 $this->set('_serialize', ['products']); 12 }
最初のページはうまく機能するのですが、次のページの並び替えがうまく機能しません。
url:ページ/コントローラー?page=2&sort=products.id&direction=asc
と表示されています。
表示原因は、太字のproductsという記述になります。
url:ページ/コントローラー?page=2&sort=products.id&direction=asc
ない場合はきれいに表示されます。
url:ページ/コントローラー?page=2&sort=id&direction=asc
ただ、どうしてこうなったのか原因が分かりません。
考察でも構いませんので、ご意見を頂きたいと思います。
補足:ビューに関してページ部分の表示は、bake の自動生成時のままです。
次ページの並び替えを設定をする方法があると助かります。
cakephp3
1 <div class="paginator"> 2 <ul class="pagination"> 3 <?= $this->Paginator->prev('< ' . __('previous')) ?> 4 <?= $this->Paginator->numbers() ?> 5 <?= $this->Paginator->next(__('next') . ' >') ?> 6 </ul> 7 <p><?= $this->Paginator->counter() ?></p> 8 </div>
回答1件
あなたの回答
tips
プレビュー