Controller "admin"

Par Zouox, il y a 14 ans


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, il y a 14 ans

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

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

met :

Configure::write('Routing.prefixes', array());
Zouox, il y a 14 ans

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 !

Grafikart, il y a 14 ans

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, il y a 14 ans

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. ;)

Grafikart, il y a 14 ans

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

Zouox, il y a 14 ans

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

Merci !