Je suis en train de suivre le tutoriel et je suis à la partie où vous ajoutez les groupes et les comptes d'utilisateurs...
Cependant, lorsque j'essaie d'ajouter un nouvel utilisateur, le menu déroulant pour le groupe est vide... Qu'est-ce qui pourrait être incorrect ?
Voici à quoi ressemble le modèle User.php
array('type' => 'requester'));
public function beforeSave() {
$this->data['User']['password'] = AuthComponent::password($this->data['User']['password']);
return true;
}
public function bindNode($user) {
return array('model' => 'Group', 'foreign_key' => $user['User']['group_id']);
}
public function parentNode() {
if (!$this->id && empty($this->data)) {
return null;
}
if (isset($this->data['User']['group_id'])) {
$groupId = $this->data['User']['group_id'];
} else {
$groupId = $this->field('group_id');
}
if (!$groupId) {
return null;
} else {
return array('Group' => array('id' => $groupId));
}
}
public $belongsTo = array(
'Group' => array(
'className' => 'Group',
'foreignKey' => 'group_id',
'conditions' => '',
'fields' => '',
'order' => ''
)
);
public $hasMany = array(
'Image' => array(
'className' => 'Image',
'foreignKey' => 'user_id',
'dependent' => false,
'conditions' => '',
'fields' => '',
'order' => '',
'limit' => '',
'offset' => '',
'exclusive' => '',
'finderQuery' => '',
'counterQuery' => ''
)
);
}
Voici à quoi ressemble le modèle Group.php
array('type' => 'requester'));
public function parentNode() {
return null;
}
public $hasMany = array(
'User' => array(
'className' => 'User',
'foreignKey' => 'group_id',
'dependent' => false,
'conditions' => '',
'fields' => '',
'order' => '',
'limit' => '',
'offset' => '',
'exclusive' => '',
'finderQuery' => '',
'counterQuery' => ''
)
);
}
Mes tables ressemblent à ceci table 'users'
> > Champ Type Null Clé Valeur par défaut Extra
> > id int(11) NON PRI NULL auto_increment
> > username varchar(64) NON UNI NULL password varchar(82) NON NULL
> > first_name varchar(64) NON NULL last_name varchar(64) NON NULL
> > créé datetime OUI NULL group_id int(11) NON NULL
table 'groups'
Champ Type Null Clé Valeur par défaut Extra
id int(11) NON PRI NULL auto_increment
name varchar(100) NON NULL
created datetime OUI NULL
modified datetime OUI NULL
Code de la vue View/Users/add.ctp
Form->create('User');?>
Form->input('username');
echo $this->Form->input('password');
echo $this->Form->input('first_name');
echo $this->Form->input('last_name');
echo $this->Form->input('group_id');
?>
Form->end(__('Soumettre'));?>
Html->link(__('Liste des utilisateurs'), array('action' => 'index'));?>
Html->link(__('Liste des groupes'), array('controller' => 'groups', 'action' => 'index')); ?>
Html->link(__('Nouveau groupe'), array('controller' => 'groups', 'action' => 'add')); ?>
Html->link(__('Liste des images'), array('controller' => 'images', 'action' => 'index')); ?>
Html->link(__('Nouvelle image'), array('controller' => 'images', 'action' => 'add')); ?>
J'ai créé 2 groupes. Un est "visiteurs" et un est "admin".. voici à quoi ressemble la table aros
actuellement
id parent_id model foreign_key alias lft rght
2 NULL Group 4 1 2
3 NULL Group 5 3 4