Exemplo n.º 1
0
 /**
  * {@inheritDoc}
  */
 public function afterSave(Field $field)
 {
     $entity = $field->get('metadata')->get('entity');
     $table = TableRegistry::get($entity->source());
     $pk = $table->primaryKey();
     if ($entity->has($pk)) {
         $TermsCache = TableRegistry::get('Taxonomy.EntitiesTerms');
         $tableAlias = Inflector::underscore($table->alias());
         $extra = !is_array($field->extra) ? [$field->extra] : $field->extra;
         $TermsCache->deleteAll(['entity_id' => $entity->get($pk), 'table_alias' => $tableAlias, 'field_instance_id' => $field->metadata->instance_id]);
         foreach ($extra as $termId) {
             Cache::delete("t{$termId}", 'terms_count');
             $cacheEntity = $TermsCache->newEntity(['entity_id' => $entity->get($pk), 'term_id' => $termId, 'table_alias' => $tableAlias, 'field_instance_id' => $field->metadata->instance_id]);
             $TermsCache->save($cacheEntity);
         }
     }
 }
Exemplo n.º 2
0
 /**
  * Alters the given $field and fetches incoming POST data, both "value" and
  * "extra" property will be automatically filled for the given $field entity.
  *
  * @param \Field\Model\Entity\Field $field The field entity for which
  *  fetch POST information
  * @return mixed Raw POST information
  */
 protected function _fetchPost(Field $field)
 {
     $post = $field->get('metadata')->get('entity')->get($field->get('name'));
     // auto-magic
     if (is_array($post)) {
         $field->set('extra', $post);
         $field->set('value', null);
     } else {
         $field->set('extra', null);
         $field->set('value', $post);
     }
     return $post;
 }