Bonjour à tous Je suis en train de créer une page d'enregistrement où une personne crée un compte, puis crée un utilisateur. Le compte peut avoir plusieurs utilisateurs et un utilisateur peut avoir 0 ou 1 comptes. Le problème que je reçois avec mon code actuel est que account_id isnt chargement à partir d'une boîte de sélectionHABTM cakephp et enregistrement
l'utilisateur peut avoir 0 ou 1 compte du compte ont 1 ou plusieurs utilisateurs
mon schéma de table est
utilisateurs - id, username, firstname, lastname
comptes - id, companyname
accounts_users - id, account_id, user_id
<?php
class Account extends AppModel{
var $name='Account';
public $useTable = 'accounts';
public $primaryKey = 'id';
var $hasAndBelongsToMany = array(
'User' =>
array(
'className'=>'User',
)
);
utilisateurs modèle
class User extends AppModel{
public $name = 'User';
public $useTable = 'users';
public $primaryKey = 'id';
var $hasAndBelongsToMany = array(
'Account' =>
array(
'className'=>'Account',
'joinTable'=>'accounts_users'
));
fonction add est le contrôleur des comptes
function add(){
$this->set('title_for_layout', 'Account registration');
$this->set('stylesheet_used', 'style');
$this->set('image_used', 'eBOXLogo.jpg');
if($this->request->is('post')){
$this->Account->create();
if ($this->Account->save($this->request->data)){
$this->Session->setFlash('The user has been saved');
$this->redirect(array('controller' => 'Users','action' => 'addAdmin'));
}
else{
$this->Session->setFlash('The business could not be saved. Please, try again.');
}
}
}
la fonction des utilisateurs
function addAdmin(){
$this->set('title_for_layout', 'Please Login');
$this->set('stylesheet_used', 'style');
$this->set('image_used', 'eBOXLogo.jpg');
if($this->request->is('post')){
$this->User->create();
$this->set('accounts', $this->User->Account->find('list'));
if ($this->User->save($this->request->data))
{
$this->Session->setFlash('The user has been saved');
$this->redirect(array('controller'=>'Users','action' => 'login'));
}
else { $this->Session->setFlash('The user could not be saved. Please, try again.'); }
}
}
le formulaire de addAdmin
<h2>Welcome please add your Administrator Details</h2>
<?php
echo $this->Form->create('User', array('action'=>'add'));
echo $this->Form->input('Account');
echo $this->Form->input('username',array('label'=>'Username: '));
echo $this->Form->input('password',array('label'=>'Password: '));
echo $this->Form->input('password_confirmation',array('type'=>'password'));
echo $this->Form->input('email',array('label'=>'Email: '));
echo $this->Form->input('title',array('label'=>'Title: '));
echo $this->Form->input('firstname',array('label'=>'First Name: '));
echo $this->Form->input('surname',array('label'=>'Surname: '));
echo $this->Form->input('street',array('label'=>'Street Address: '));
echo $this->Form->input('city',array('label'=>'City: '));
echo $this->Form->input('state',array('label'=>'State: '));
echo $this->Form->input('country',array('label'=>'Country: '));
echo $this->Form->input('access_level', array('default' => 2));
echo $this->Form->end('Add Administrator');
?>
"account_id ne charge pas à partir d'une zone de sélection" pourriez-vous décrire exactement ce qui se passe. –