0
我在Symfony的1.4和1.4的Propel強制 '的updated_at' 用的Symfony /行走列變化1.4
現有項目的新要求,我想下面的代碼:
static public function extendMomentoLock($momentoId,$memberId)
{
$wherec = new Criteria();
$updatec = new Criteria();
$updatec->add(MomentoPeer::LOCKED, 1);
$updatec->addAnd(MomentoPeer::LOCKEDBY, $memberId);
$wherec->add(MomentoPeer::ID, $momentoId, Criteria::EQUAL);
$con = Propel::getConnection(MemberPeer::DATABASE_NAME, Propel::CONNECTION_WRITE);
BasePeer::doUpdate($wherec, $updatec, $con);
return "extended";
}
正如預期的那樣,它生成正確的查詢,從日誌中獲取
UPDATE momento SET `LOCKED`=1, `LOCKEDBY`=6 WHERE momento.ID='198'
沒有問題,直到這裏。
問題開始,因爲我需要每3分鐘運行一次該查詢。規則是,如果記錄在5分鐘前更新,則每5分鐘自動解鎖一行。要保持鎖定狀態,updated_at
列必須少於5分鐘,以便瀏覽器發送請求以保持記錄鎖定。
我期待查詢更新updated_at
列。但是,由於查詢中沒有更新,所以updated_at
列未更新。
有沒有什麼辦法強制推動執行查詢,即使沒有記錄更新。
是否要強制'extendMomentoLock'總是更新表,即使'LOCKED'&'LOCKEDBY'來自同以前的版本,對吧? – j0k
是@ j0k你是對的。目前我正在做一個像創建一個新列,並增加它以確保'updated_at'的變化,我知道,這是一個不好的解決方案。理想的解決方案是更新'updated_at'列,而不管其他列是否更改。 –
我想你正在使用Timestampable行爲,所以它只會在行上進行更改時更新日期字段。你有沒有嘗試明確地在'$ updatec'中添加updated_at列? – j0k