Simple question d'un n00b absolu. J'essaie de créer un écran de contenu d'édition basé sur le code donné dans le tutoriel de blog sur le site de gâteau.CakePHP: champs non remplis dans l'écran d'édition
Voilà ma fonction d'édition dans le contrôleur (il est nommé Contenu):
function edit($id = null) {
$this->Content->id = $id;
Debugger::dump($this->Content->id);
if(empty($this->data)) {
$this->data = $this->Content->read();
Debugger::dump($this->Content);
}
else {
if($this->Content->save($this->data)) {
$this->Session->setFlash('Content has been updated.');
$this->redirect(array('action' => 'index'));
}
}
}
Et ceci est edit.ctp:
echo $form->create('Content', array('action' => 'edit'));
echo $form->input('id', array('type' => 'hidden'));
echo $form->input('title');
echo $form->input('nicename');
echo $form->end('Save');
Cependant, quand je visite l'écran d'édition, la les champs de saisie ne sont pas mis en POPULATION avec les données demandées.
J'utilise HTML Helper pour générer les liens et mon lien d'édition prend la forme:
http://localhost/contents/edit/id:4c8efaa0-02fc-46bf-ac65-06a07614f57d
Comme vous pouvez le voir, je l'ai présenté deux décharges Debugger dans la fonction d'édition du contrôleur ... ceux-ci montrent que $ this-> Content-> id reste NULL lorsque je visite cette URL.
MAIS, si je modifier l'URL à cette forme (notez que je l'ai utilisé '=' au lieu d'un ':'):
http://localhost/contents/edit/id=4c8efaa0-02fc-46bf-ac65-06a07614f57d
rapports Debugger $ this-> Content-> id pour avoir la valeur correcte ...
Cependant, mes champs ne sont toujours pas remplis.
La fonction d'index fonctionne bien mais ...
function index() {
$this->set('contents', $this->Content->find('all'));
}
La fonction ci-dessus est listant le contenu correctement!
Où est-ce que je me trompe? Est-ce que je rate un peu de code essentiel dans la vue? Toute aide sera grandement appréciée.
Merci, m^e
Merci Nik. En attendant la réponse, j'ai décidé de gratter le code et de repartir à zéro ... et je suis arrivé à la même conclusion que le vôtre en vérifiant les liens générés par les échafaudages. –
Ummm ..J'ai toujours des problèmes avec la génération de liens .. Voici mon code: echo $ html-> link ('Edit', array ('controller' => 'contents', 'action' => 'edit', 'id' => $ item ['Content'] ['id'])); –
Et ... peu importe .. compris. Il devrait être: echo $ html-> link ('Edit', array ('controller' => 'contenu', 'action' => 'edit', $ item ['Contenu'] ['id'])) –