[英]Doctrine query to update users table
我有一個包含以下字段的表單:
我已經在 Model_Users class 中創建了這個方法
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();
}
The problem is that this isn't really updating... and if I do something like $q->getSqlQuery()
the SQL query I get is UPDATE users SET email =?, password =?, url =?, responsable =?, role =? WHERE (id = 150)
UPDATE users SET email =?, password =?, url =?, responsable =?, role =? WHERE (id = 150)
。
我猜我不能使用 foreach 循環來解決這個問題,......那么解決它的方法是什么?
如果您已經有一個可用的Model_User
實例,那么它應該是您嘗試更新的記錄。 否則,您只需使用查詢。 updateUser
不屬於Model_User
它屬於Model_User_Table
假設您實際上正在為每個 model 生成 Doctrine 表類(我個人推薦)。
要回答您的實際問題,盡管它應該看起來像這樣:
$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();
至於設置pais
,代碼取決於pais
在 DB 中的存儲方式(它是什么 doctrine 類型 - 數組、object、字符串、M2m 關系?)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.