本文整理汇总了PHP中Doctrine_Record::preDelete方法的典型用法代码示例。如果您正苦于以下问题:PHP Doctrine_Record::preDelete方法的具体用法?PHP Doctrine_Record::preDelete怎么用?PHP Doctrine_Record::preDelete使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Doctrine_Record
的用法示例。
在下文中一共展示了Doctrine_Record::preDelete方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: delete
/**
* deletes this data access object and all the related composites
* this operation is isolated by a transaction
*
* this event can be listened by the onPreDelete and onDelete listeners
*
* @return boolean true on success, false on failure
*/
public function delete(Doctrine_Record $record)
{
if (!$record->exists()) {
return false;
}
$this->conn->beginTransaction();
$event = new Doctrine_Event($this, Doctrine_Event::RECORD_DELETE);
$record->preDelete($event);
$record->state(Doctrine_Record::STATE_LOCKED);
$this->deleteComposites($record);
$record->state(Doctrine_Record::STATE_TDIRTY);
if (!$event->skipOperation) {
$this->conn->transaction->addDelete($record);
$record->state(Doctrine_Record::STATE_TCLEAN);
}
$record->postDelete($event);
$this->conn->commit();
return true;
}
示例2: _preDelete
/**
* Invokes preDelete event listeners.
*
* @return boolean Whether a listener has used it's veto (don't delete!).
*/
private function _preDelete(Doctrine_Record $record)
{
$event = new Doctrine_Event($record, Doctrine_Event::RECORD_DELETE);
$record->preDelete($event);
$record->getTable()->getRecordListener()->preDelete($event);
return $event->skipOperation;
}
示例3: delete
/**
* deletes given record and all the related composites
* this operation is isolated by a transaction
*
* this event can be listened by the onPreDelete and onDelete listeners
*
* @return boolean true on success, false on failure
*/
public function delete(Doctrine_Record $record)
{
if (!$record->exists()) {
return false;
}
$this->conn->beginTransaction();
$event = new Doctrine_Event($record, Doctrine_Event::RECORD_DELETE);
$record->preDelete($event);
$table = $record->getTable();
$table->getRecordListener()->preDelete($event);
$state = $record->state();
$record->state(Doctrine_Record::STATE_LOCKED);
$this->deleteComposites($record);
if (!$event->skipOperation) {
$record->state(Doctrine_Record::STATE_TDIRTY);
if ($table->getOption('joinedParents')) {
foreach ($table->getOption('joinedParents') as $parent) {
$parentTable = $table->getConnection()->getTable($parent);
$this->conn->delete($parentTable, $record->identifier());
}
}
$this->conn->delete($table, $record->identifier());
$record->state(Doctrine_Record::STATE_TCLEAN);
} else {
// return to original state
$record->state($state);
}
$table->getRecordListener()->postDelete($event);
$record->postDelete($event);
$table->removeRecord($record);
$this->conn->commit();
return true;
}