忍者ブログ

Symfony 1.0 NULL

2011年11月14日
Symfony 1.0 Propelである列にNullを設定したいのだけれど、設定されない。
$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;

良いか悪いか分からないけど、一応解決。

拍手[0回]

PR
Comment
  Vodafone絵文字 i-mode絵文字 Ezweb絵文字
Trackback
トラックバックURL: