主义查询更新用户表

| 我有一个包含以下字段的表单: 电子邮件 密码 网址 负责任的 佩斯(这是一个多复选框) 角色 我已经在Model_Users类中创建了此方法
public function updateUser($user) {
    $q = Doctrine_Query::create()
        ->update(\'Model_Users usr\'); //aca estaba el ;

    foreach ($user as $k => $v) {
        if ($k == \'pais\' || $k == \'id\') {
            continue;
        } else {
            $q->set(\"usr.$k\", \'?\', $v);
            //echo \"Key: $k => Value: $v ||\";
        }
    }

    $q->where(\"usr.id=$user[id]\");
    $q->execute();
}
问题是这并没有真正更新...并且如果我执行类似回显
$q->getSqlQuery()
的操作,则得到的SQL查询是
UPDATE users SET email = ?, password = ?, url = ?, responsable = ?, role = ? WHERE (id = 150)
。 我猜我不能使用foreach循环来解决这个问题,...那么解决方法是什么?     
已邀请:
        如果您已经有一个“ 3”实例可用,那么它应该是您尝试更新的记录。否则,您仅使用查询。假设您实际上为每种模型生成了教义表类(我个人建议),则
updateUser
不属于
Model_User
而是属于
Model_User_Table
。 要回答您的实际问题,尽管看起来像这样:
   $q = Doctrine_Query::create()
        ->update(\'Model_Users\');

   foreach ($user as $k => $v) {
        if ($k == \'pais\' || $k == \'id\') {
            continue;
        } else {
            $q->set($k, $v);
        }
    }

    $q->where(\"usr.id = ?\", $user[id]);
    $q->execute();
至于设置“ 8”,代码的高低取决于“ 8”在数据库中的存储方式(它的学说类型是数组,对象,字符串,M2m关系?)。     

要回复问题请先登录注册