Bonjour,

J'ai un souci étrange : si je veux établir un système d'administration, il m'est impossible de passer par un controller "admin" et sa méthode "index" avec "var $uses= array()" pour ne pas utiliser de model.
Il m'est exigé de passer par le PostsController :

Missing Method in PostsController
Error: The action admin_index is not defined in controller PostsController
Error: Create PostsController::admin_index() in file: app\controllers\posts_controller.php.

J'aimerais ne pas passer par "admin_index" dans le PostsController mais plutôt par "index" dans AdminController.

Savez-vous pourquoi?
Merci !

6 réponses


bhamzapro
Réponse acceptée

Salut,
désactive le prefix admin dans le fichier core.php

Configure::write('Routing.prefixes', array('admin'));

met :

Configure::write('Routing.prefixes', array());
Grafikart
Réponse acceptée

Ah ben à toi de configurer les Routes dans ce cas pour qu'elle redirige vers l'action voulue :)

Zouox
Auteur

Merci, en effet ça fonctionne !

En fait ce n'était pas vraiment ça que je voulais faire. :s

Je voudrais que que "admin_index.ctp" soit détaché du dossier "/views/posts", puisqu'il doit permettre de gérer plusieurs contrôleurs (posts, users, ...). Par exemple qu'il soit à la racine de "views/" ou dans un dossier spécifique.

Sacez-vous comment faire? Merci !

Ah tu parle de charger une vue spécifique ?
A la fin de ton action dans le controller tu fais $this->render('/outuveux/tavue')
le / designant le dossier views, tu ne pourras pas mettre de vue ailleurs de toute façon.

Zouox
Auteur

Merci pour la réponse.

Je ne pense pas que l'on parle de la même chose. :s

Je voudrais que quand on se rend à : "adressedusite/admin", on passe par le controller "AdminController", sauf que CakePHP veut impérativement passer par le controller "PostsController" et l'action "admin_index" (certainement parce que j'ai fait une mauvaise manip' ?).

Voilà le message d'erreur lorsque je me rends à "adressedusite/admin/" après avoir supprimé "admin_index" du controller "PostsController" :

Missing Method in PostsController
Error: The action admin_index is not defined in controller PostsController
Error: Create PostsController::admin_index() in file: app\controllers\posts_controller.php.
<?php
class PostsController extends AppController {
    var $name = 'Posts';

    function admin_index() {
    }
}
?>

Vous avez une idée? Merci. ;)

Zouox
Auteur

C'est exactement ça ! Je l'avais modifié mais je ne me rappelais plus. =)

Merci !