本文整理匯總了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;
}