Symfony 1.0 NULL
2011年11月14日
Symfony 1.0 Propelである列にNullを設定したいのだけれど、設定されない。
SQLを見ると該当列がUpdateにも加わっていない。
setterの中身を見ると以下のように前回と違う値でないとUpdateする列に加わらないらしい。
なので一回別の値を設定してから、Nullを設定する。
SQLを見るとUpdate対象になっている。
良いか悪いか分からないけど、一応解決。
$now = date("Y-m-d H:i:s");
$user = new TUser();
$user->setUserId(xxx);
$user->setName("xxx");
if ($deleted != "0") {
$user->setAvailableEnd($now);
} else {
$user->setAvailableEnd(null);
}
$user->setNew(false);
$user->save();SQLを見ると該当列がUpdateにも加わっていない。
UPDATE user SET name = 'xxx' WHERE user_id = xxx;
setterの中身を見ると以下のように前回と違う値でないとUpdateする列に加わらないらしい。
public function setAvailableEnd($v)
{
:
if ($this->available_end !== $ts) {
$this->available_end = $ts;
$this->modifiedColumns[] = TUserPeer::AVAILABLE_END;
}
}
なので一回別の値を設定してから、Nullを設定する。
if ($deleted != "0") {
$user->setAvailableEnd($now);
} else {
$user->setAvailableEnd($now); // 一回別の値を設定
$user->setAvailableEnd(null); // Nullを設定
}SQLを見るとUpdate対象になっている。
UPDATE user SET name = 'xxx', available_end = NULL WHERE user_id = xxx;
良いか悪いか分からないけど、一応解決。
PR
Comment


