Bonsoir,
J'ai un formulaire dans lequel est pré rempli des information.
Je fait un debug de request->data et j'ai les données mais je ne sais pas comment obtenir les données de contact.
j'ai essayé sans success echo $data['Contact']['id']
comment faire ?
Bon finalement j'ai trouvé sans rien changé au code de départ.
Car le this->Contact->read() est deja fait dans mon else if
donc il me suffisait simplement de recuperer l'id de la maniere suivante
echo $this->data['Contact']['id'];
Si j'étais toi, j'affecterais une nouvelle variable dans l'enveloppe de variables (en faisant un set()) pour là simple et unique raison qu'on ne devrait pas directement avoir accès au tableau de données (data) depuis la vue.
Par conséquent, voici la solution
<?php
// Dans ton contrôleur
public function index()
{
// $this->set('requestData', $this->request->data);
$this->set('contact', $this->request->data['Contact']);
}
// Dans ta vue
debug($contact);
Ramz. :-)
j'ai du mal a comprendre, il faut envoyer les deux données ?
contact et request data ?
public function admin_edit($id = null)
{
if ($this->request->is('put') || $this->request->is('post')) {
if($this->Contact->save($this->request->data)){
$this->Session->setFlash('Le contenu a bien été modifié','notif');
$this->redirect(array('action'=>'index'));
}
} else if($id) {
$this->Contact->id = $id;
$this->request->data = $this->Contact->read();
}
$this->loadModel('Stage');
$d['stages'] = $this->Stage->find('list');
$d['ids'] = $this->Contact->id = $id;
$this->set($d);
}
Voici mon code, j'ai juste fait ca $d['ids'] = $this->Contact->id = $id;
ca marche mais quelques chose me dit qu'il y a plus simple
Non, non. Le ligne en commentaire (// $this->set('requestData', $this->request->data);
) c'était seulement pour l'example. Enfin, l'idée c'était de voir à pas tout donner à la vue en le limitant au contact.
$d['ids'] = $this->Contact->id = $id;
Cette ligne se lit de droite à gauche. Par conséquent, il y a un effectation de $id à $this->Contact->id et ensuite de $this->Contact->id à $d['ids']. Toutefois, c'est pas vraiment utile de faire plusieurs fois cette affection. Dans CakePHP, les formulaires sont envoyés dans la requête sous l'index du modèle normalement. Par conséquent, ton $this->request->data contiendra l'indice Contact. Il serait donc préférable de faire
$this->request->data['Contact'] = $this->Contact->read();
Ramz.