Bonjour

Suite sur le route je souhaitais savoir comment faire pour router les url des lien créé par paginate.
C'est à dire les next, prev et les nombre.
A savoir que c'est pour les tableau de mon administration

Voila ce que j'ai fait

Router::connect(
    '/admin/administration_des_categories/:id',
        array('controller' => 'categories', 'action' => 'index', 'prefix' => 'admin'),
        array('pass'=>array('id'),
        'id'=>'[0-9]+'
        )
    );

Merci d'avance

4 réponses


furax84
Auteur
Réponse acceptée

Merci de ta réponse mais non ça na va pas, j'avais vu ça dans la doc mais ça ne marchait pas non plus ...
En faite en plus de ta solution il faut faire attention à l'ordre des router (comme tu le dis sur ton tuto)

Je faisait

Router::connect(
    '/admin/administration_des_categories',
    array('controller' => 'categories', 'action' => 'index', 'prefix' => 'admin')
    );

    Router::connect(  
     '/admin/administration_des_categories/*',  
         array('controller' => 'categories', 'action' => 'index', 'admin'=>true)  
     );

Alors qu'il fallait faire

Router::connect(  
     '/admin/administration_des_categories/*',  
         array('controller' => 'categories', 'action' => 'index', 'admin'=>true)  
     );

    Router::connect(
    '/admin/administration_des_categories',
    array('controller' => 'categories', 'action' => 'index', 'prefix' => 'admin')
    );

Le problème est résolu merci beaucoup

furax84
Auteur

Je suis enfin arriver à ré écrire mes pagination en faisant

Router::connect(
    '/admin/administration_des_categories/*',
        array('controller' => 'categories', 'action' => 'admin_index')
    );

Mais maintenant j'ai cette erreur
Error: CategoriesController::admin_index() cannot be accessed directly.

J'avais eu le même problème avec l'envoie des formulaire que je suis arrivé à resoudre en mettant

echo $this->Form->create(array('controller' => 'categories', 'action' => 'edit'));

Mais la je ne vois pas comment faire

Amicalement

Comme te le dit l'erreur on ne peux accéder directement à une view admin. Ce que tu peux faire :

Router::connect(
    '/admin/administration_des_categories/*',
        array('controller' => 'categories', 'action' => 'index','admin'=>true)
    );
furax84
Auteur

Ps je me suis permis de valider ma réponse pour avoir la solution complète

Amicalement