當前位置: 首頁>>代碼示例>>PHP>>正文


PHP EntityInterface::extractOriginal方法代碼示例

本文整理匯總了PHP中Cake\Datasource\EntityInterface::extractOriginal方法的典型用法代碼示例。如果您正苦於以下問題:PHP EntityInterface::extractOriginal方法的具體用法?PHP EntityInterface::extractOriginal怎麽用?PHP EntityInterface::extractOriginal使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在Cake\Datasource\EntityInterface的用法示例。


在下文中一共展示了EntityInterface::extractOriginal方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。

示例1: afterSave

 /**
  * Calculates the changes done to the entity and stores the audit log event object into the
  * log queue inside the `_auditQueue` key in $options.
  *
  * @param Cake\Event\Event The Model event that is enclosed inside a transaction
  * @param Cake\Datasource\EntityInterface $entity The entity that is to be saved
  * @param ArrayObject $options Options array containing the `_auditQueue` key
  * @return void
  */
 public function afterSave(Event $event, EntityInterface $entity, $options)
 {
     if (!isset($options['_auditQueue'])) {
         return;
     }
     $config = $this->_config;
     if (empty($config['whitelist'])) {
         $config['whitelist'] = $this->_table->schema()->columns();
         $config['whitelist'] = array_merge($config['whitelist'], $this->getAssociationProperties(array_keys($options['associated'])));
     }
     $config['whitelist'] = array_diff($config['whitelist'], $config['blacklist']);
     $changed = $entity->extract($config['whitelist'], true);
     if (!$changed) {
         return;
     }
     $original = $entity->extractOriginal(array_keys($changed));
     $properties = $this->getAssociationProperties(array_keys($options['associated']));
     foreach ($properties as $property) {
         unset($changed[$property], $original[$property]);
     }
     if (!$changed || $original === $changed && !$entity->isNew()) {
         return;
     }
     $primary = $entity->extract((array) $this->_table->primaryKey());
     $auditEvent = $entity->isNew() ? AuditCreateEvent::class : AuditUpdateEvent::class;
     $transaction = $options['_auditTransaction'];
     $auditEvent = new $auditEvent($transaction, $primary, $this->_table->table(), $changed, $original);
     if (!empty($options['_sourceTable'])) {
         $auditEvent->setParentSourceName($options['_sourceTable']->table());
     }
     $options['_auditQueue']->attach($entity, $auditEvent);
 }
開發者ID:lorenzo,項目名稱:audit-stash,代碼行數:41,代碼來源:AuditLogBehavior.php


注:本文中的Cake\Datasource\EntityInterface::extractOriginal方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。