2010-10-12 8 views
1

Lorsque je tente de mettre à jour un utilisateur, disons solde de son compte

$this->User->id = $validUserId; 
$this->User->saveField('balance', 100); 

Je reçois cette erreur

SQL Error: 1054: Unknown column 'User.group_id' in 'field list' 

cette requête généré automatiquement druring le processus d'enregistrement

SELECT `User`.`group_id` FROM `users` AS `User` WHERE `User`.`id` = *validUserId* LIMIT 1 

l'utilisateur belongsTo un groupe d'utilisateurs et par conséquent l'utilisateur a un user_group_id ttribute, est-il possible de dire à cake, que l'attribut est lié à un UserGroup?

Merci à l'avance, EL

Répondre

2

Peut-être, si vous êtes économiser un champ, vous n'avez pas besoin de faire des validations. Dans ce cas, il suffit de faire

$this->User->saveField('balance', 100, false); 

http://api.cakephp.org/class/model#method-ModelsaveField

Ou s'il y a un rappel comme beforeSave ou quelque chose, je pense que vous pouvez faire quelque chose comme:

$this->save($data, array('validate'=>false, 'callbacks'=>false)); 

Hope this helps

+0

désactivant les callbacks résolu le problème, merci;) – ELwhis

2

Très certainement, les modèles devraient ressembler à ceci:

class UserGroup extends AppModel { 
    var $belongsTo = array(
    'UserGroup' => array(
     'className' => 'UserGroup', 
     'foreignKey' => 'user_group_id' 
    ) 
); 
} 

class User extends AppModel { 
    var $hasMany = array(
    'User' => array(
     'className' => 'User', 
     'foreignKey' => 'user_group_id' 
    ) 
); 
} 

Lire sur l'association des modèles CakePHP dans le book

+0

sont vous suer UserGroup belongsTo UserGroup et l'utilisateur hasMany Users? Mon modèle est bien ... L'utilisateur appartient à UserGroup, la clé étrangère définie à user_group_id et UserGroup hasMany utilisateurs, avec le même FK – ELwhis

Questions connexes