Bonjour,

Je suis actuellement entrain de développer avec site web avec Cake PHP mais je rencontre un petit problème que je n'arrive pas à résoudre.

J'ai une page "Présentation" sur mon site. Dans mon panneau d'administration, j'ai une autre page dédiée à la modification de ma page de présentation, avec AdminPresentation.php comme Model et AdminPresentationController.php pour Controller.

Dans ma page AdminPresentation, j'ai un formulaire avec un textarea (CKEditor) et un bouton "Modifier".
C'est lorsque je valide mon formulaire que je rencontre un problème : CakePHP me demande de créer le controller "AdminPresentationsController", je rajoute donc le "s" pour voir si le problème est corrigé mais non, il me demande de créer le controller "AdminPresentationController"... Et quand je corrige à nouveau, mes données sont bien modifiées.

J'espère que j'ai bien expliqué pour êtrez compréhensible.

Merci d'avance.

6 réponses


Merci pour ton aide.

Ce que j'ai fait : j'ai mis en place le prefixage admin dans mon controller PresentationsController (avec un "s"). Mais je me retrouve avec la même genre d'erreur : sur ma page Presentation (côté client et côté admin), CakePHP me demande de créer le controller "PresentationController".

Quand mon controller se nomme "PresentationController", mes affichages se font côté client et côté admin. Mais quand je clique sur le bouton modifier, il me demande "PresentationsController" (je peux voir qu'il y a un "s" dans mon URL : ".../admin/presentations/modifier").

Et quand mon controller se nomme "PresentationsController", mes affichages ne se font pas et il me réclame "PresentationController".

Ta bdd s'apelle comment ? Les controllers doivent toujours être au pluriel et as tu fais des liaisons ?

Tu pourrais nous donner le contenu de ton $this->Form->create() s'il te plait?

Je pense que tu as mis à l'intérieur;

controller => AdminPresentation

<?= $this->Form->creat('AdminPresentation', ['controller' => 'AdminPresentation', 'action' => 'edit']; ?>

si c'est le cas mais un 's' et à la fois à ton controller.

<?= $this->Form->create('AdminPresentation', ['controller' => 'AdminPresentations', 'action' => 'edit']; ?>
<?php
class AdminPresentationsController extends AppController {
    public function edit($id){
    }
}

Par contre il faut que ta table s'appelle admin_presentations sinon il faut que tu le précise dans ton Model

J'ai essayé ce que vous m'avez dit, mais pas de changement.

Par contre c'est en voyant ce que tu me proposes J-C Pires que j'ai eu une idée : dans la fonction de mon controller AdminPresentations, j'ai un redirection à la fin (return $this->redirect('/Presentation');).
Je l'ai modifié en return return $this->redirect(array('controller' => 'AdminPresentations'));, et ça marche ! Je n'ai plus de problèmes.

Je vous remercie.

DarkAS-24

Content de vous avoir mis dans la bonne direction !