2010-10-12 69 views
1

当我尝试更新的用户,比方说他的账户余额

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

我得到这个错误

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

与此自动生成查询droring保存过程

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

用户属于一个用户组,因此用户有user_group_id a ttribute,有没有办法告诉蛋糕,该属性与UserGroup有关?

由于提前, EL

回答

2

CakePHP的模型相关联,如果你只是保存一个字段,你不需要做验证。在这种情况下,只是做

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

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

或者,如果有喜欢beforeSave什么的回调,我认为你可以这样做:

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

希望这有助于

+0

禁用回调解决了问题,谢谢;) – ELwhis 2010-10-21 21:11:46

2

十分肯定,该机型应该是这样的:

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' 
    ) 
); 
} 

阅读关于也许在book

+0

是你suer UserGroup belongsTo UserGroup和User hasMany Users?我的模型没问题...用户属于UserGroup,外键设置为user_group_id和UserGroup hasMany Users,使用相同的FK – ELwhis 2010-10-21 19:38:16

相关问题