Абстрактный класс Phalcon\Mvc\Model\MetaData

Реализует Phalcon\Di\InjectionAwareInterface, Phalcon\Mvc\Model\MetaDataInterface

Source on GitHub

Поскольку Phalcon\Mvc\Model требует метаданных, таких как имена полей, типы данных, первичные ключи и т. д. этот компонент собирает их и сохраняет для дальнейших запросов с помощью Phalcon\Mvc\Model. Phalcon\Mvc\Model\MetaData также может использовать адаптеры для временного или постоянного хранения метаданных.

Стандартный Phalcon\Mvc\Model\MetaData может использоваться для запроса атрибутов модели:

<?php

$metaData = new \Phalcon\Mvc\Model\MetaData\Memory();

$attributes = $metaData->getAttributes(
    new Robots()
);

print_r($attributes);

Константы

integer MODELS_ATTRIBUTES

integer MODELS_PRIMARY_KEY

integer MODELS_NON_PRIMARY_KEY

integer MODELS_NOT_NULL

integer MODELS_DATA_TYPES

integer MODELS_DATA_TYPES_NUMERIC

integer MODELS_DATE_AT

integer MODELS_DATE_IN

integer MODELS_IDENTITY_COLUMN

integer MODELS_DATA_TYPES_BIND

integer MODELS_AUTOMATIC_DEFAULT_INSERT

integer MODELS_AUTOMATIC_DEFAULT_UPDATE

integer MODELS_DEFAULT_VALUES

integer MODELS_EMPTY_STRING_VALUES

integer MODELS_COLUMN_MAP

integer MODELS_REVERSE_COLUMN_MAP

Методы

final protected _initialize (Phalcon\Mvc\ModelInterface $model, mixed $key, mixed $table, mixed $schema)

Инициализация метаданных для определенной таблицы

public setDI (Phalcon\DiInterface $dependencyInjector)

Устанавливает контейнер DependencyInjector

public getDI ()

Возвращает контейнер DependencyInjector

public setStrategy (Phalcon\Mvc\Model\MetaData\StrategyInterface $strategy)

Настройка стратегии извлечения метаданных

public getStrategy ()

Вернуть стратегию для получения метаданных

final public readMetaData (Phalcon\Mvc\ModelInterface $model)

Считывает полные метаданные для определенной модели

<?php

print_r(
    $metaData->readMetaData(
        new Robots()
    )
);

final public readMetaDataIndex (Phalcon\Mvc\ModelInterface $model, mixed $index)

Читает метаданные для определенной модели

<?php

print_r(
    $metaData->readMetaDataIndex(
        new Robots(),
        0
    )
);

final public writeMetaDataIndex (Phalcon\Mvc\ModelInterface $model, mixed $index, mixed $data)

Записывает метаданные для определенной модели с использованием константы MODEL_ *

<?php

print_r(
    $metaData->writeColumnMapIndex(
        new Robots(),
        MetaData::MODELS_REVERSE_COLUMN_MAP,
        [
            "leName" => "name",
        ]
    )
);

final public readColumnMap (Phalcon\Mvc\ModelInterface $model)

Считывает упорядоченную / обратную карту столбцов для определенной модели

<?php

print_r(
    $metaData->readColumnMap(
        new Robots()
    )
);

final public readColumnMapIndex (Phalcon\Mvc\ModelInterface $model, mixed $index)

Считывает информацию о столбце для определенной модели с использованием константы MODEL_ *

<?php

print_r(
    $metaData->readColumnMapIndex(
        new Robots(),
        MetaData::MODELS_REVERSE_COLUMN_MAP
    )
);

public getAttributes (Phalcon\Mvc\ModelInterface $model)

Возвращает имена атрибутов таблиц (полей)

<?php

print_r(
    $metaData->getAttributes(
        new Robots()
    )
);

public getPrimaryKeyAttributes (Phalcon\Mvc\ModelInterface $model)

Возвращает массив полей, которые являются частью первичного ключа

<?php

print_r(
    $metaData->getPrimaryKeyAttributes(
        new Robots()
    )
);

public getNonPrimaryKeyAttributes (Phalcon\Mvc\ModelInterface $model)

Возвращает массив полей, которые не являются частью первичного ключа

<?php

print_r(
    $metaData->getNonPrimaryKeyAttributes(
        new Robots()
    )
);

public getNotNullAttributes (Phalcon\Mvc\ModelInterface $model)

Возвращает массив не нулевых атрибутов

<?php

print_r(
    $metaData->getNotNullAttributes(
        new Robots()
    )
);

public getDataTypes (Phalcon\Mvc\ModelInterface $model)

Возвращает атрибуты и типы данных

<?php

print_r(
    $metaData->getDataTypes(
        new Robots()
    )
);

public getDataTypesNumeric (Phalcon\Mvc\ModelInterface $model)

Возвращает атрибуты, типы которых являются числовыми

<?php

print_r(
    $metaData->getDataTypesNumeric(
        new Robots()
    )
);

public string getIdentityField (Phalcon\Mvc\ModelInterface $model)

Возвращает имя поля идентификации (если оно присутствует)

<?php

print_r(
    $metaData->getIdentityField(
        new Robots()
    )
);

public getBindTypes (Phalcon\Mvc\ModelInterface $model)

Возвращает атрибуты и их связанные типы данных

<?php

print_r(
    $metaData->getBindTypes(
        new Robots()
    )
);

public getAutomaticCreateAttributes (Phalcon\Mvc\ModelInterface $model)

Возвращает атрибуты, которые должны игнорироваться при создании SQL INSERT

<?php

print_r(
    $metaData->getAutomaticCreateAttributes(
        new Robots()
    )
);

public getAutomaticUpdateAttributes (Phalcon\Mvc\ModelInterface $model)

Возвращает атрибуты, которые должны игнорироваться при генерации SQL UPDATE

<?php

print_r(
    $metaData->getAutomaticUpdateAttributes(
        new Robots()
    )
);

public setAutomaticCreateAttributes (Phalcon\Mvc\ModelInterface $model, array $attributes)

Задайте атрибуты, которые должны игнорироваться при создании SQL INSERT

<?php

$metaData->setAutomaticCreateAttributes(
    new Robots(),
    [
        "created_at" => true,
    ]
);

public setAutomaticUpdateAttributes (Phalcon\Mvc\ModelInterface $model, array $attributes)

Задайте атрибуты, которые должны игнорироваться при создании SQL UPDATE

<?php

$metaData->setAutomaticUpdateAttributes(
    new Robots(),
    [
        "modified_at" => true,
    ]
);

public setEmptyStringAttributes (Phalcon\Mvc\ModelInterface $model, array $attributes)

Установка атрибутов, допускающих пустые строковые значения

<?php

$metaData->setEmptyStringAttributes(
    new Robots(),
    [
        "name" => true,
    ]
);

public getEmptyStringAttributes (Phalcon\Mvc\ModelInterface $model)

Возвращает атрибуты, допускающие пустые строки

<?php

print_r(
    $metaData->getEmptyStringAttributes(
        new Robots()
    )
);

public getDefaultValues (Phalcon\Mvc\ModelInterface $model)

Возвращает атрибуты (которые имеют значения по умолчанию) и их значения по умолчанию

<?php

print_r(
    $metaData->getDefaultValues(
        new Robots()
    )
);

public getColumnMap (Phalcon\Mvc\ModelInterface $model)

Возвращает сопоставление столбцов, если таковые имеются

<?php

print_r(
    $metaData->getColumnMap(
        new Robots()
    )
);

public getReverseColumnMap (Phalcon\Mvc\ModelInterface $model)

Возвращает обратную карту столбцов, если таковая

<?php

print_r(
    $metaData->getReverseColumnMap(
        new Robots()
    )
);

public hasAttribute (Phalcon\Mvc\ModelInterface $model, mixed $attribute)

Проверяет, имеет ли модель определенный атрибут

<?php

var_dump(
    $metaData->hasAttribute(
        new Robots(),
        "name"
    )
);

public isEmpty ()

Проверяет, свободен ли внутренний контейнер метаданных

<?php

var_dump(
    $metaData->isEmpty()
);

public reset ()

Сбрасывает внутренние метаданные для их регенерации

<?php

$metaData->reset();

abstract public read (mixed $key) inherited from Phalcon\Mvc\Model\MetaDataInterface

...

abstract public write (mixed $key, mixed $data) inherited from Phalcon\Mvc\Model\MetaDataInterface

...