voila j'ai une table utilisateurs qui permet d'enregistrer mes utilisateurs lorsqu'un utilisateur s'enregistre, il est rediriger vers la zone membre gérer par le controleur membres. dans le controleur membre je donne la possiblité de modifier le compte(nom,prenom,sexe,telephone). je veus que lorsque l'utilisateurs modifie une information que je valide d'abord avant de faire un update voila ma vew :
<table class="table table-hover">
<tr><td><strong>Nom</strong></td><td><?php echo h($user['Utilisateurs']['nom_utilisateur']); ?></td><td><?php echo $this->Html->link('','#form-nom', array('class'=>'glyphicon glyphicon-edit','data-toggle' =>'modal','data-backdrop' =>'false','title' => 'Modifier')); ?></td></tr>
<tr><td><strong>Prénom</strong></td><td><?php echo h($user['Utilisateurs']['prenom_utilisateur']); ?></td><td> <?php echo $this->Html->link('','#form-prenom', array('class'=>'glyphicon glyphicon-edit','data-toggle' =>'modal','data-backdrop' =>'false','title' => 'Modifier')); ?></td>
</tr>
<tr><td><strong>Numéro de téléphone</strong></td><td><?php echo h($user['Utilisateurs']['tel_utilisateur']); ?></td><td><?php echo $this->Html->link('','#form-telephone', array('class'=>'glyphicon glyphicon-edit','data-toggle' =>'modal','data-backdrop' =>'false','title' => 'Modifier')); ?></td>
</tr>
<tr><td><strong>Sexe</strong></td><td><?php echo h($user['Utilisateurs']['sexe_utilisateur']); ?></td><td><?php echo $this->Html->link('','#form-sexe', array('class'=>'glyphicon glyphicon-edit','data-toggle' =>'modal','data-backdrop' =>'false','title' => 'Modifier')); ?></td>
</tr>
<tr><td><strong>Fonction</strong></td><td><?php echo h($user['Utilisateurs']['fonction']); ?></td><td><?php echo $this->Html->link('','#form-fonction', array('class'=>'glyphicon glyphicon-edit','data-toggle' =>'modal','data-backdrop' =>'false','title' => 'Modifier')); ?></td>
</tr>
<tr><td><strong>Addresse</strong></td><td><?php echo h($user['Utilisateurs']['addresse']); ?></td><td>
<?php echo $this->Html->link('','#form-addresse', array('class'=>'glyphicon glyphicon-edit','data-toggle' =>'modal','data-backdrop' =>'false','title' => 'Modifier')); ?>
</td>
</tr>
</table>
voici le formulaire qui est appelé pour modifier les informations
<div class="modal-body">
<?php
$add = $user['Utilisateurs']['nom_utilisateur'];
echo $this->Form->create('Utilisateur', array('url' =>array('controller' => 'Membres','action'=>'Updatecompte'),'class'=>'form-inline')); ?>
<?php
echo $this->Form->input('Utilisateur.valuefield', array('label'=>' Nom ','class'=>'form-control','value'=>$add));
?>
<?php
echo $this->Form->input('Utilisateur.champ', array('type'=>'hidden','value'=>'nom_utilisateur'));
?>
<br>
<?php
echo $this->Form->button('Modifier', array('type'=>'submit','class'=>'btn btn-primary btn-modifier'));
echo $this->Form->end();
?>
</div>
dans le controleur membre je fais ceci
<?php
/**
*
*/
App::uses('Comptes','Controller');
class MembresController extends AppController
{
public $theme = 'Membres';
public $uses = array('Compte','Utilisateur');
public function index()
{
$this->layout = 'defaults';
//$this->set('title_for_layout','Vous êtes connecté comme membre');
}
public function Gestionprofil()
{
$this->layout = 'defaults';
//debug($this->Session->read());
//debug($this->Session->read('Auth.User.id'));
//debug(AuthComponent::Compte());
}
public function editcompte()
{
$this->layout = 'defaults';
$User_id = $this->Auth->user('id');
if(!$User_id)
{
return $this->redirect(array('controller' =>'Comptes','action' =>'login'));
die();
}
$this->Compte->bindModel(array('belongsTo' =>array('Utilisateurs' => array('classname' => 'Compte'))));
$this->Compte->id = $User_id;
$this->request->data = $this->Compte->read();
$this->set('user',$this->request->data);
//debug($this->request->data['Compte']['motdepass_compte']);
}
public function Updatecompte()
{
$this->layout = 'defaults';
$user_id = $this->Auth->user('id');
if(!$user_id)
{
return $this->redirect('/');
die();
}
if(!$this->request->is('put') && !empty($this->request->data))
{
$fieldsave = $this->request->data['Utilisateur']['champ'];
/*if($this->request->data['Utilisateur']['champ'] == 'tel_utilisateur')
{
$this->Utilisateur->set($this->request->data['Utilisateur']['tel_utilisateur']);
if($this->Utilisateur->validates(array('fieldList' =>array('tel_utilisateur'))))
{
$errors = $this->Utilisateur->validationErrors;
debug($this->request->data['Utilisateur']['tel_utilisateur']);
$this->request->data['Utilisateur']['valuefield'] = $this->request->data['Utilisateur']['tel_utilisateur'];
}
else
{
$this->Session->setFlash('Les informations sont incorrectes','default', array('class'=>'alert alert-error'));
debug($errors);
}
}
*/
debug($this->request->data['Utilisateur']['valuefield']);
$this->Utilisateur->id = $user_id;
if($this->Utilisateur->saveField($fieldsave,$this->request->data['Utilisateur']['valuefield'],true))
{
//debug($this->Utilisateur->read());
$this->Session->setFlash('Modification effectuer avec succès','default', array('class'=>'alert alert-success'));
return $this->redirect(array('action' => 'editcompte'));
}
else
{
$this->Session->setFlash('erreur d\'Enregistrement','default', array('class'=>'alert alert-error'));
debug($this->Utilisateur->read());
}
}
}
}
?>
j'aimerai savoir comment valider les informations avec mon model utulisateur