MetaModels\DcGeneral\Events\Table\MetaModels\Subscriber::handleUpdate PHP Метод

handleUpdate() публичный Метод

Handle the update of a MetaModel and all attached data.
public handleUpdate ( ContaoCommunityAlliance\DcGeneral\Event\PostPersistModelEvent $event ) : void
$event ContaoCommunityAlliance\DcGeneral\Event\PostPersistModelEvent The event.
Результат void
    public function handleUpdate(PostPersistModelEvent $event)
    {
        if ($event->getEnvironment()->getDataDefinition()->getName() !== 'tl_metamodel') {
            return;
        }
        $old = $event->getOriginalModel();
        $new = $event->getModel();
        $oldTable = $old ? $old->getProperty('tableName') : null;
        $newTable = $new->getProperty('tableName');
        // Table name changed?
        if ($oldTable !== $newTable) {
            if ($oldTable && $this->getDatabase()->tableExists($oldTable, null, true)) {
                TableManipulation::renameTable($oldTable, $newTable);
                // TODO: notify attributes that the MetaModel has changed its table name.
            } else {
                TableManipulation::createTable($newTable);
            }
        }
        TableManipulation::setVariantSupport($newTable, $new->getProperty('varsupport'));
    }