Hier hinzuzufügen ist mein ClientsController:Wie Paginierung benutzerdefinierte Abfrage in CakePHP3
namespace App\Controller\Api;
use App\Controller\Api\AppController;
class ClientsController extends AppController{
public $paginate = [
'page' => 1,
'limit' => 5,
'maxLimit' => 15,
'fields' => [
'id', 'name', 'user_id', 'dob', 'phone', 'email'
],
'sortWhitelist' => [
'id', 'name', 'user_id', 'dob', 'phone', 'email'
]
];
public function index(){
$clients = $this->Clients->find('clients');
$this->set([
'clients'=>$clients,
'_serialize'=>['clients']
]);
}
}
Hier ist meine benutzerdefinierte Finder (ClientsTable):
public function findClients(Query $query, array $options){
$query
->select([
'clients.id',
'clients.name'
])
->where(['clients.user_id =' => 3]);
return $query;
}
Wie kann ich Paginierung diesem hinzufügen? Das alles funktioniert gut, es fehlt nur Seitenumbruch.
Wenn ich die Indexfunktion entferne bekomme ich Paginierung, aber dann scheint mein Finder nicht aufgerufen zu werden. Dies ist, wie der Code aussieht:
namespace App\Controller\Api;
use App\Controller\Api\AppController;
class ClientsController extends AppController{
public $paginate = [
'page' => 1,
'limit' => 5,
'finder' => 'clients',
'maxLimit' => 15,
'fields' => [
'id', 'name', 'user_id', 'dob', 'phone', 'email'
],
'sortWhitelist' => [
'id', 'name', 'user_id', 'dob', 'phone', 'email'
]
];
}
Bisher ist die einzige Art, wie ich diese Arbeit bekommen kann, ist durch diese Komponente mit: https://github.com/bcrowe/cakephp-api-pagination – bstras21
Mögliches Duplikat [Paginierung Wert json Reaktion in CakePHP Hinzufügen 3.3] (http://stackoverflow.com/questions/40225505/adding-pagination-value-to-json-response-in-cakephp-3-3) – ndm
Es ist kein Duplikat, meins versucht, einen benutzerdefinierten Finder zu verwenden. – bstras21