我有一个名为user_tasks的表。我没有该表的模型,在我完全不相关的控制器中,我需要更新user_tasks表中的单个字段。
这是我到目前为止所尝试的
$user = ClassRegistry::init('user_tasks');
$conditions = "user_id = ". $user_id;
$userRows = $user->find('first', array('conditions'=>$conditions));
$user->set(array(
'task' => $level
));
$user->save();
然而,它不喜欢$ user-> save();我的表永远不会更新。我该怎么做才能使它发挥作用。
感谢
更新:
在我的try / catch块中, 我明白了
{"errorInfo":["HY000",1364,"Field 'user_id' doesn't have a default value"],"queryString":"INSERT INTO `mytable`.`user_tasks` (`subscription`, `modified`, `created`) VALUES ('Latest', '2015-04-09 15:08:51', '2015-04-09 15:08:51')"}
答案 0 :(得分:0)
所以
$ user = ClassRegistry :: init('user_tasks');
$conditions = "user_id = ". $user_id;
$userRows = $user->find('first', array('conditions'=>$conditions));
$user->set(array(
'task' => $level,
'user_id' => $user_id
));
$user->save();
以上将创建一个新记录。如果要更新记录,则只需传递主键。如果你传递主键,那么你不需要user_id等。你只需要集合中需要更新的字段。