使用classRegistry更新没有模型的数据

时间:2015-04-09 21:07:03

标签: cakephp

我有一个名为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')"}

1 个答案:

答案 0 :(得分:0)

好吧我明白了。我也必须发送用户ID

所以

$ 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等。你只需要集合中需要更新的字段。