CakePHP allows to paginate multiple models in a single controller action, using the scope option – but if you want to paginate the same model multiple times, this is not supported.
The solution: generate different models (on the fly) for using it to paginate:
In the controller:
$this->loadModel('Members'); $paginator1 = $this->paginate( $this->Members->find()->where(['tag' => 1]), [ 'model' => 'Members', 'scope' => 'scope1' ] ); eval('namespace App\Model\Table;' . 'class Members2 extends \App\Model\Table\Members {}'); $this->loadModel('Members2'); $paginator2 = $this->paginate( $this->Members2->find()->where(['tag' => 2]), [ 'model' => 'Members2', 'scope' => 'scope2' ] );
In the view:
// first paginator echo $this->Paginator->sort('title', ['model' => 'Members']); // second paginator echo $this->Paginator->sort('title', ['model' => 'Members2']);
Neueste Kommentare