Voici mon ClientsController:Comment ajouter à la pagination requête personnalisée dans 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']
]);
}
}
Voici mon habitude Finder (ClientsTable):
public function findClients(Query $query, array $options){
$query
->select([
'clients.id',
'clients.name'
])
->where(['clients.user_id =' => 3]);
return $query;
}
Comment puis-je ajouter à cette pagination? Tout cela fonctionne très bien, il manque juste la pagination.
Si je supprime la fonction d'index, j'obtiens une pagination mais mon finder ne semble pas être appelé. Voici comment ce code semble:
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'
]
];
}
Jusqu'à présent, la seule façon de faire fonctionner ce composant est d'utiliser ce composant: https://github.com/bcrowe/cakephp-api-pagination – bstras21
Copie possible de [Ajout de la valeur de pagination à la réponse json dans Cakephp 3.3] (http://stackoverflow.com/questions/40225505/adding-pagination-value-to-json-response-in-cakephp-3-3) – ndm
Ce n'est pas un doublon, le mien essaie d'utiliser un chercheur personnalisé. – bstras21