J'utilise cakePHP et je veux ajouter une colonne Prénom et Nom dans la table Utilisateurs, mais lorsque je passe les valeurs firstname
& lastname
les colonnes sont toujours vides, alors que les champs par défaut sont bien remplis.Puis-je avoir des champs supplémentaires sur la table des utilisateurs dans CakePHP et toujours utiliser les méthodes d'authentification intégrées?
Est-il possible de faire cela ou dois-je avoir une deuxième table pour stocker ces valeurs?
Code de mise à jour:
Formulaire d'inscription
<?php
$session->flash('register');
echo $form->create('User', array('action' => 'register/'));
echo '<h3>Register</h3>';
echo $form->input('firstname', array('label'=>'First Name'));
echo $form->input('lastname', array('label'=>'Last Name'));
echo $form->input('username');
echo $form->input('email');
echo '<input class="submitimg" type="image" src="' . $basepath . 'img/btn_submit.gif" alt="Submit" />';
echo $form->end();
?>
d'action registre user_controller.php
function register() {
if (!empty($this->data)) {
$password = $this->str_makerand(8,10);
$this->data['User']['password'] = $this->Auth->password($password);
$this->User->create();
$result = $this->User->save($this->data);
if ($result) {
$this->Session->setFlash('Registration complete, an email will be sent with your password', 'default', array(), 'register');
$this->sendNewUserMail($this->data['User']['username'], $this->data['User']['email'], $password);
} else {
$this->Session->setFlash('That username or email address is already taken, please try again', 'default', array(), 'register');
}
}
$this->redirect(array('controller' => 'properties', 'action' => 'index'));
}
table utilisateurs MySQL:
CREATE TABLE users (
id int(11) NOT NULL AUTO_INCREMENT,
username char(50) DEFAULT NULL,
firstname varchar(100) NOT NULL,
lastname varchar(100) NOT NULL,
password char(50) DEFAULT NULL,
email varchar(100) NOT NULL,
created datetime NOT NULL,
PRIMARY KEY (id),
UNIQUE KEY email (email),
UNIQUE KEY username (username)
)
Merci pour votre aide