Абстрактный класс yii\sphinx\ActiveRecord
| Наследование | yii\sphinx\ActiveRecord » yii\db\BaseActiveRecord » yii\base\Model » yii\base\Component » yii\base\Object |
|---|---|
| Реализует | ArrayAccess, IteratorAggregate, yii\base\Arrayable, yii\base\Configurable, yii\db\ActiveRecordInterface |
| Использует трейты | yii\base\ArrayableTrait |
| Доступно с версии | 2.0 |
| Исходный код | https://github.com/yiisoft/yii2-sphinx/blob/master/ActiveRecord.php |
ActiveRecord — базовый класс для классов, представляющих реляционные данные в виде объектов.
Предупреждение: оптимистическая блокировка НЕ будет работать в случае обновления полей (не атрибутов) для индексов runtime!
Открытые свойства
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| $activeValidators | yii\validators\Validator[] | Валидаторы, применимые к текущему $scenario. | yii\base\Model |
| $attributes | array | Значения атрибутов (имя => значение). | yii\base\Model |
| $behaviors | yii\base\Behavior[] | Список поведений, присоединенных к этому компоненту | yii\base\Component |
| $dirtyAttributes | array | Измененные значения атрибутов (имя-значение). | yii\db\BaseActiveRecord |
| $errors | array | Ошибки для всех атрибутов или указанного атрибута. | yii\base\Model |
| $firstErrors | array | Первые ошибки. | yii\base\Model |
| $isNewRecord | boolean | Является ли запись новой и должна ли она быть вставлена при вызове save(). | yii\db\ActiveRecordInterface |
| $iterator | ArrayIterator | Итератор для обхода элементов в списке. | yii\base\Model |
| $oldAttributes | array | Предыдущие значения атрибутов (имя-значение). | yii\db\BaseActiveRecord |
| $oldPrimaryKey | mixed | Старое значение первичного ключа. | yii\db\ActiveRecordInterface |
| $primaryKey | mixed | Значение первичного ключа. | yii\db\ActiveRecordInterface |
| $relatedRecords | array | Массив связанных записей, индексированных по именам отношений. | yii\db\BaseActiveRecord |
| $scenario | string | Сценарий, в котором находится эта модель. | yii\base\Model |
| $snippet | string | yii\sphinx\ActiveRecord | |
| $snippetSource | string | Строка исходного фрагмента. | yii\sphinx\ActiveRecord |
| $validators | ArrayObject|yii\validators\Validator[] | Все валидаторы, объявленные в модели. | yii\base\Model |
Открытые методы
| Метод | Описание | Определено в |
|---|---|---|
| __call() | Вызывает именованный метод, который не является методом класса. | yii\base\Object |
| __clone() | Этот метод вызывается после создания объекта путём клонирования существующего. | yii\base\Component |
| __construct() | Конструктор. | yii\base\Object |
| __get() | Магический метод PHP для получения свойства. | yii\db\BaseActiveRecord |
| __isset() | Проверяет, является ли значение свойства null. | yii\db\BaseActiveRecord |
| __set() | Магический метод PHP для установки свойства. | yii\db\BaseActiveRecord |
| __unset() | Устанавливает свойство компонента в null. | yii\db\BaseActiveRecord |
| activeAttributes() | Возвращает имена атрибутов, которые подлежат валидации в текущем сценарии. | yii\base\Model |
| addError() | Добавляет новую ошибку к указанному атрибуту. | yii\base\Model |
| addErrors() | Добавляет список ошибок. | yii\base\Model |
| afterDelete() | Этот метод вызывается после удаления записи. | yii\db\BaseActiveRecord |
| afterFind() | Этот метод вызывается, когда объект AR создан и заполнен результатом запроса. | yii\db\BaseActiveRecord |
| afterRefresh() | Этот метод вызывается при обновлении объекта AR. | yii\db\BaseActiveRecord |
| afterSave() | Этот метод вызывается в конце операции вставки или обновления записи. | yii\db\BaseActiveRecord |
| afterValidate() | Этот метод вызывается после окончания валидации. | yii\base\Model |
| attachBehavior() | Присоединяет поведение к этому компоненту. | yii\base\Component |
| attachBehaviors() | Присоединяет список поведений к компоненту. | yii\base\Component |
| attributeHints() | Возвращает подсказки к атрибутам. | yii\base\Model |
| attributeLabels() | Возвращает метки атрибутов. | yii\base\Model |
| attributes() | Возвращает список всех имён атрибутов модели. | yii\sphinx\ActiveRecord |
| beforeDelete() | Этот метод вызывается перед удалением записи. | yii\db\BaseActiveRecord |
| beforeSave() | Этот метод вызывается в начале операции вставки или обновления записи. | yii\db\BaseActiveRecord |
| beforeValidate() | Этот метод вызывается перед началом валидации. | yii\base\Model |
| behaviors() | Возвращает список поведений, которые должен проявлять этот компонент. | yii\base\Component |
| callKeywords() | Возвращает токенизированные и нормализованные формы ключевых слов, а также, необязательно, статистику по ключевым словам. | yii\sphinx\ActiveRecord |
| callSnippets() | Создаёт фрагмент из предоставленных данных и запроса, используя указанные настройки индекса. | yii\sphinx\ActiveRecord |
| canGetProperty() | Возвращает значение, указывающее, можно ли считать свойство. | yii\db\BaseActiveRecord |
| canSetProperty() | Возвращает значение, указывающее, можно ли установить свойство. | yii\db\BaseActiveRecord |
| className() | Возвращает полное квалифицированное имя этого класса. | yii\base\Object |
| clearErrors() | Удаляет ошибки для всех атрибутов или одного атрибута. | yii\base\Model |
| createValidators() | Создаёт объекты валидаторов на основе правил валидации, указанных в rules(). | yii\base\Model |
| delete() | Удаляет запись в индексе, соответствующую этому активному записям. | yii\sphinx\ActiveRecord |
| deleteAll() | Удаляет строки в индексе, используя предоставленные условия. | yii\sphinx\ActiveRecord |
| detachBehavior() | Отсоединяет поведение от компонента. | yii\base\Component |
| detachBehaviors() | Отсоединяет все поведения от компонента. | yii\base\Component |
| ensureBehaviors() | Убеждается, что поведения, объявленные в behaviors(), присоединены к этому компоненту. | yii\base\Component |
| equals() | Возвращает значение, указывающее, является ли заданный активный запрос таким же, как текущий. | yii\sphinx\ActiveRecord |
| extraFields() | Возвращает список полей, которые могут быть дополнительно расширены и возвращены методом toArray(). | yii\base\ArrayableTrait |
| fields() | Возвращает список полей, которые должны быть возвращены по умолчанию методом toArray(), когда не указаны конкретные поля. | yii\base\ArrayableTrait |
| find() | Создаёт экземпляр \yii\sphinx\ActiveQueryInterface для целей запроса. | yii\sphinx\ActiveRecord |
| findAll() | Возвращает список активных записей модели, которые соответствуют указанному(ым) значению(ям) первичного ключа или набору значений столбцов. | yii\db\ActiveRecordInterface |
| findBySql() | Создаёт экземпляр yii\sphinx\ActiveQuery с заданным SQL-запросом. | yii\sphinx\ActiveRecord |
| findOne() | Возвращает единственный экземпляр активной записи модели по первичному ключу или массиву значений столбцов. | yii\db\ActiveRecordInterface |
| formName() | Возвращает имя формы, которое должен использовать этот класс модели. | yii\base\Model |
| generateAttributeLabel() | Генерирует понятную пользователю метку атрибута на основе имени атрибута. | yii\base\Model |
| getActiveValidators() | Возвращает валидаторы, применимые к текущему $сценарий. | yii\base\Model |
| getAttribute() | Возвращает значение атрибута с указанным именем. | yii\db\ActiveRecordInterface |
| getAttributeHint() | Возвращает подсказку к указанному атрибуту. | yii\db\BaseActiveRecord |
| getAttributeLabel() | Возвращает метку к указанному атрибуту. | yii\db\BaseActiveRecord |
| getAttributes() | Возвращает значения атрибутов. | yii\base\Model |
| getBehavior() | Возвращает объект поведения с указанным именем. | yii\base\Component |
| getBehaviors() | Возвращает все присоединенные к этому компоненту поведения. | yii\base\Component |
| getDb() | Возвращает подключение к Sphinx, используемое этим классом AR. | yii\sphinx\ActiveRecord |
| getDirtyAttributes() | Возвращает значения атрибутов, которые были изменены с момента их последней загрузки или сохранения. | yii\db\BaseActiveRecord |
| getErrors() | Возвращает ошибки для всех атрибутов или одного атрибута. | yii\base\Model |
| getFirstError() | Возвращает первую ошибку для указанного атрибута. | yii\base\Model |
| getFirstErrors() | Возвращает первую ошибку для каждого атрибута в модели. | yii\base\Model |
| getIndexSchema() | Возвращает информацию о схеме индекса Sphinx, связанного с этим классом AR. | yii\sphinx\ActiveRecord |
| getIsNewRecord() | Возвращает значение, указывающее, является ли текущий записной новый (не сохранённый в базе данных). | yii\db\ActiveRecordInterface |
| getIterator() | Возвращает итератор для обхода атрибутов модели. | yii\base\Model |
| getOldAttribute() | Возвращает старое значение указанного атрибута. | yii\db\BaseActiveRecord |
| getOldAttributes() | Возвращает старые значения атрибутов. | yii\db\BaseActiveRecord |
| getOldPrimaryKey() | Возвращает старое значение(я) первичного ключа. | yii\db\ActiveRecordInterface |
| getPrimaryKey() | Возвращает значение(я) первичного ключа. | yii\db\ActiveRecordInterface |
| getRelatedRecords() | Возвращает все связанные записи. | yii\db\BaseActiveRecord |
| getRelation() | Возвращает объект отношения с указанным именем. | yii\db\ActiveRecordInterface |
| getScenario() | Возвращает сценарий, в котором используется эта модель. | yii\base\Model |
| getSnippet() | Возвращает текущее значение фрагмента или генерирует новое из заданного совпадения. | yii\sphinx\ActiveRecord |
| getSnippetSource() | Возвращает строку, которая должна использоваться в качестве источника для создания фрагмента для этого экземпляра Active Record. | yii\sphinx\ActiveRecord |
| getValidators() | Возвращает все валидаторы, объявленные в rules(). | yii\base\Model |
| hasAttribute() | Возвращает значение, указывающее, есть ли у записи атрибут с указанным именем. | yii\db\ActiveRecordInterface |
| hasErrors() | Возвращает значение, указывающее, есть ли какие-либо ошибки валидации. | yii\base\Model |
| hasEventHandlers() | Возвращает значение, указывающее, есть ли какие-либо обработчики, присоединенные к указанному событию. | yii\base\Component |
| hasMany() | Объявляет отношение has-many. | yii\db\BaseActiveRecord |
| hasMethod() | Возвращает значение, указывающее, определён ли метод. | yii\base\Object |
| hasOne() | Объявляет отношение has-one. | yii\db\BaseActiveRecord |
| hasProperty() | Возвращает значение, указывающее, определена ли свойство. | yii\base\Object |
| indexName() | Объявляет имя индекса Sphinx, связанного с этим классом AR. | yii\sphinx\ActiveRecord |
| init() | Инициализирует объект. | yii\db\BaseActiveRecord |
| insert() | Вставляет строку в связанный индекс Sphinx, используя значения атрибутов этой записи. | yii\sphinx\ActiveRecord |
| instantiate() | Создаёт экземпляр активной записи. | yii\db\BaseActiveRecord |
| isAttributeActive() | Возвращает значение, указывающее, активен ли атрибут в текущем сценарии. | yii\base\Model |
| isAttributeChanged() | Возвращает значение, указывающее, был ли изменён указанный атрибут. | yii\db\BaseActiveRecord |
| isAttributeRequired() | Возвращает значение, указывающее, обязателен ли атрибут. | yii\base\Model |
| isAttributeSafe() | Возвращает значение, указывающее, является ли атрибут безопасным для массового присваивания. | yii\base\Model |
| isPrimaryKey() | Возвращает значение, указывающее, представляет ли данный набор атрибутов первичный ключ для этой модели | yii\db\ActiveRecordInterface |
| isRelationPopulated() | Проверяет, было ли отношение с указанным именем заполнено записями. | yii\db\BaseActiveRecord |
| isTransactional() | Возвращает значение, указывающее, является ли указанная операция транзакционной в текущем $scenario. | yii\sphinx\ActiveRecord |
| link() | Устанавливает взаимосвязь между двумя записями. | yii\db\ActiveRecordInterface |
| load() | Заполняет модель входными данными. | yii\base\Model |
| loadMultiple() | Заполняет набор моделей данными от пользователя. | yii\base\Model |
| markAttributeDirty() | Помечает атрибут как изменённый. | yii\db\BaseActiveRecord |
| off() | Отсоединяет существующий обработчик событий от этого компонента. | yii\base\Component |
| offsetExists() | Возвращает, есть ли элемент по указанному смещению. | yii\db\BaseActiveRecord |
| offsetGet() | Возвращает элемент по указанному смещению. | yii\base\Model |
| offsetSet() | Устанавливает элемент по указанному смещению. | yii\base\Model |
| offsetUnset() | Устанавливает значение элемента по указанному смещению в null. | yii\db\BaseActiveRecord |
| on() | Присоединяет обработчик события к событию. | yii\base\Component |
| onUnsafeAttribute() | Этот метод вызывается, когда небезопасный атрибут массово присваивается. | yii\base\Model |
| optimisticLock() | Возвращает имя столбца, хранящего версию блокировки для реализации оптимистической блокировки. | yii\db\BaseActiveRecord |
| populateRecord() | Заполняет объект активной записи строкой данных из базы данных/хранилища. | yii\sphinx\ActiveRecord |
| populateRelation() | Заполняет указанное отношение связанными записями. | yii\db\ActiveRecordInterface |
| primaryKey() | Возвращает имя первичного ключа для данного класса AR. | yii\sphinx\ActiveRecord |
| refresh() | Перезаполняет активную запись последними данными. | yii\db\BaseActiveRecord |
| rules() | Возвращает правила валидации для атрибутов. | yii\base\Model |
| safeAttributes() | Возвращает имена атрибутов, которые безопасно массово присваивать в текущей ситуации. | yii\base\Model |
| save() | Сохраняет текущую запись. | yii\db\ActiveRecordInterface |
| scenarios() | Возвращает список сценариев и соответствующие активные атрибуты. | yii\base\Model |
| setAttribute() | Устанавливает значение указанного атрибута. | yii\db\ActiveRecordInterface |
| setAttributes() | Устанавливает значения атрибутов массивно. | yii\base\Model |
| setIsNewRecord() | Устанавливает значение, указывающее, является ли запись новой. | yii\db\BaseActiveRecord |
| setOldAttribute() | Устанавливает старое значение указанного атрибута. | yii\db\BaseActiveRecord |
| setOldAttributes() | Устанавливает старые значения атрибутов. | yii\db\BaseActiveRecord |
| setScenario() | Устанавливает сценарий для модели. | yii\base\Model |
| setSnippet() | yii\sphinx\ActiveRecord | |
| toArray() | Преобразует модель в массив. | yii\base\ArrayableTrait |
| transactions() | Объявляет, какие операции должны выполняться в транзакции в разных сценариях. | yii\sphinx\ActiveRecord |
| trigger() | Вызывает событие. | yii\base\Component |
| unlink() | Уничтожает связь между двумя записями. | yii\db\ActiveRecordInterface |
| unlinkAll() | Уничтожает связь в текущей модели. | yii\db\BaseActiveRecord |
| update() | Сохраняет изменения в этой активной записи в связанном индексе Sphinx. | yii\sphinx\ActiveRecord |
| updateAll() | Обновляет всю таблицу с использованием предоставленных значений атрибутов и условий. | yii\sphinx\ActiveRecord |
| updateAllCounters() | Обновляет всю таблицу с использованием предоставленных изменений счётчиков и условий. | yii\db\BaseActiveRecord |
| updateAttributes() | Обновляет указанные атрибуты. | yii\db\BaseActiveRecord |
| updateCounters() | Обновляет один или несколько счётчиков столбцов для текущего объекта AR. | yii\db\BaseActiveRecord |
| validate() | Выполняет проверку данных. | yii\base\Model |
| validateMultiple() | Проверяет несколько моделей. | yii\base\Model |
Защищённые методы
| Метод | Описание | Определено |
|---|---|---|
| createRelationQuery() | Создаёт экземпляр запроса для has-one или has-many отношения. | yii\db\BaseActiveRecord |
| fetchSnippet() | Формирует значение фрагмента из данного запроса. | yii\sphinx\ActiveRecord |
| findByCondition() | Ищет экземпляр(ы) ActiveRecord по заданному условию. | yii\db\BaseActiveRecord |
| resolveFields() | Определяет, какие поля могут быть возвращены методом toArray(). | yii\base\ArrayableTrait |
| updateInternal() | yii\sphinx\ActiveRecord |
События
| Событие | Тип | Описание | Определено в |
|---|---|---|---|
| EVENT_AFTER_DELETE | yii\base\Event | Событие, которое срабатывает после удаления записи. | yii\db\BaseActiveRecord |
| EVENT_AFTER_FIND | yii\base\Event | Событие, которое срабатывает после создания и заполнения записи результатами запроса. | yii\db\BaseActiveRecord |
| EVENT_AFTER_INSERT | yii\db\AfterSaveEvent | Событие, которое срабатывает после вставки записи. | yii\db\BaseActiveRecord |
| EVENT_AFTER_REFRESH | yii\base\Event | Событие, которое срабатывает после обновления записи. (доступно с версии 2.0.8) | yii\db\BaseActiveRecord |
| EVENT_AFTER_UPDATE | yii\db\AfterSaveEvent | Событие, которое срабатывает после обновления записи. | yii\db\BaseActiveRecord |
| EVENT_AFTER_VALIDATE | yii\base\Event | Событие, поднимаемое в конце validate() | yii\base\Model |
| EVENT_BEFORE_DELETE | yii\base\ModelEvent | Событие, которое срабатывает перед удалением записи. | yii\db\BaseActiveRecord |
| EVENT_BEFORE_INSERT | yii\base\ModelEvent | Событие, которое срабатывает перед вставкой записи. | yii\db\BaseActiveRecord |
| EVENT_BEFORE_UPDATE | yii\base\ModelEvent | Событие, которое срабатывает перед обновлением записи. | yii\db\BaseActiveRecord |
| EVENT_BEFORE_VALIDATE | yii\base\ModelEvent | Событие, поднимаемое в начале validate(). | yii\base\Model |
| EVENT_INIT | yii\base\Event | Событие, которое срабатывает при инициализации записи через init(). | yii\db\BaseActiveRecord |
Константы
| Константа | Значение | Описание | Определено в |
|---|---|---|---|
| OP_ALL | 7 | Все три операции: вставка, обновление, удаление. Это сокращение выражения: OP_INSERT | OP_UPDATE | OP_DELETE. | yii\sphinx\ActiveRecord |
| OP_DELETE | 4 | Операция удаления. Используется в основном при переопределении transactions() для указания транзакционных операций. | yii\sphinx\ActiveRecord |
| OP_INSERT | 1 | Операция вставки. Используется в основном при переопределении transactions() для указания транзакционных операций. | yii\sphinx\ActiveRecord |
| OP_UPDATE | 2 | Операция обновления. Используется в основном при переопределении transactions() для указания транзакционных операций. | yii\sphinx\ActiveRecord |
| SCENARIO_DEFAULT | 'default' | Имя сценария по умолчанию. | yii\base\Model |
Подробности свойств
$snippet общедоступное свойство
public string getSnippet ( $match = null, $options = [] )
public void setSnippet ( $snippet )
$snippetSource общедоступное только для чтения свойство
Строка источника фрагмента.
public string getSnippetSource ( )
Подробности методов
attributes() public method
Возвращает список всех имён атрибутов модели.
Реализация по умолчанию вернёт все имена столбцов таблицы, связанной с этим классом AR.
| public array attributes ( ) | ||
|---|---|---|
| return | array |
Список имён атрибутов. |
callKeywords() public static method
Возвращает токенизированные и нормализованные формы ключевых слов, а также, необязательно, статистику по ключевым словам.
| public static array callKeywords ( $text, $fetchStatistic = false ) | ||
|---|---|---|
| $text | string |
Текст, который нужно разбить на ключевые слова. |
| $fetchStatistic | boolean |
Нужно ли вернуть статистику по документам и совпадениям. |
| return | array |
Ключевые слова и статистика. |
callSnippets() public static method
Создаёт фрагмент из предоставленных данных и запроса, используя заданные настройки индекса.
| public static string|array callSnippets ( $source, $match, $options = [] ) | ||
|---|---|---|
| $source | string|array |
Источник данных для извлечения фрагмента. Может быть строкой или массивом строк. |
| $match | string |
Полный текстовый запрос для создания фрагментов. |
| $options | array |
Список параметров в формате: имя параметра => значение параметра. |
| return | string|array |
Созданный фрагмент, если "source" — строка; список созданных фрагментов, если "source" — массив. |
delete() public method
Удаляет запись индекса, соответствующую этому активному записям.
Этот метод выполняет следующие шаги по порядку:
- вызов beforeDelete(). Если метод возвращает false, остальные шаги будут пропущены;
- удаление записи из индекса;
- вызов afterDelete().
На шагах 1 и 3 события с именами EVENT_BEFORE_DELETE и EVENT_AFTER_DELETE будут вызваны соответствующими методами.
| public integer|false delete ( ) | ||
|---|---|---|
| return | integer|false |
Количество строк, удалённых из базы, или |
| throws | yii\db\StaleObjectException |
если включена опция оптимистической блокировки и удаляемые данные устарели. |
| throws | Exception |
в случае, если удаление не удалось. |
deleteAll() public static method
Удаляет строки в индексе, используя предоставленные условия.
Например, чтобы удалить все статьи, статус которых равен 3:
Article::deleteAll('status = 3');
| public static integer deleteAll ( $condition = '', $params = [] ) | ||
|---|---|---|
| $condition | string|array |
Условие, которое будет добавлено в часть WHERE SQL-запроса DELETE. Обратитесь к yii\sphinx\Query::where() для получения информации о том, как указать этот параметр. |
| $params | array |
Параметры (имя => значение), которые будут привязаны к запросу. |
| return | integer |
Количество удалённых строк. |
equals() public method
Возвращает значение, указывающее, является ли заданная запись активной такой же, как текущая.
Сравнение выполняется путём сравнения имён индексов и значений первичного ключа двух записей. Если одна из записей является новой, они также считаются не равными.
| public boolean equals ( $record ) | ||
|---|---|---|
| $record | yii\sphinx\ActiveRecord |
Запись для сравнения. |
| return | boolean |
Являются ли две активные записи ссылками на одну и ту же строку в одном и том же индексе. |
fetchSnippet() protected method
Создаёт значение фрагмента из данного запроса.
| protected string fetchSnippet ( $match, $options = [] ) | ||
|---|---|---|
| $match | string |
Полный текстовый запрос для создания фрагментов. |
| $options | array |
Список параметров в формате: имя параметра => значение параметра. |
| return | string |
Значение фрагмента. |
find() public static method
Создаёт экземпляр \yii\sphinx\ActiveQueryInterface для целей запроса.
Возвращаемый экземпляр \yii\sphinx\ActiveQueryInterface может быть далее настроен путём вызова методов, определённых в \yii\sphinx\ActiveQueryInterface, до вызова one() или all(), для возврата заполненных экземпляров ActiveRecord. Например,
// find the customer whose ID is 1
$customer = Customer::find()->where(['id' => 1])->one();
// find all active customers and order them by their age:
$customers = Customer::find()
->where(['status' => 1])
->orderBy('age')
->all();
Этот метод также вызывается yii\db\BaseActiveRecord::hasOne() и yii\db\BaseActiveRecord::hasMany() для создания реляционного запроса.
Можно переопределить этот метод, чтобы вернуть настроенный запрос. Например,
class Customer extends ActiveRecord
{
public static function find()
{
// use CustomerQuery instead of the default ActiveQuery
return new CustomerQuery(get_called_class());
}
}
Следующий код демонстрирует, как применить условие по умолчанию ко всем запросам:
class Customer extends ActiveRecord
{
public static function find()
{
return parent::find()->where(['deleted' => false]);
}
}
// Use andWhere()/orWhere() to apply the default condition
// SELECT FROM customer WHERE `deleted`=:deleted AND age>30
$customers = Customer::find()->andWhere('age>30')->all();
// Use where() to ignore the default condition
// SELECT FROM customer WHERE age>30
$customers = Customer::find()->where('age>30')->all();
| public static yii\sphinx\ActiveQuery find ( ) | ||
|---|---|---|
| return | yii\sphinx\ActiveQuery |
Созданный экземпляр yii\sphinx\ActiveQuery. |
findBySql() public static method
Создаёт экземпляр yii\sphinx\ActiveQuery с заданным SQL-запросом.
Обратите внимание, что, поскольку SQL-запрос уже задан, вызов дополнительных методов изменения запроса (например, where(), order()) на созданном экземпляре yii\sphinx\ActiveQuery не повлияет. Однако, вызов with(), asArray() или indexBy() по-прежнему допустим.
Ниже пример:
$customers = Article::findBySql("SELECT * FROM `idx_article` WHERE MATCH('development')")->all();
| public static yii\sphinx\ActiveQuery findBySql ( $sql, $params = [] ) | ||
|---|---|---|
| $sql | string |
SQL-запрос, который нужно выполнить. |
| $params | array |
Параметры, которые нужно привязать к SQL-запросу во время выполнения. |
| return | yii\sphinx\ActiveQuery |
Созданный экземпляр yii\sphinx\ActiveQuery |
getDb() public static method
Возвращает подключение к Sphinx, используемое этим классом AR.
По умолчанию используется компонент приложения "sphinx" как подключение к Sphinx. Можно переопределить этот метод, если нужно использовать другое подключение к Sphinx.
| public static yii\sphinx\Connection getDb ( ) | ||
|---|---|---|
| return | yii\sphinx\Connection |
Подключение к Sphinx, используемое этим классом AR. |
getIndexSchema() public static method
Возвращает схему индекса Sphinx, связанную с этим классом AR.
| public static yii\sphinx\IndexSchema getIndexSchema ( ) | ||
|---|---|---|
| возвращает | yii\sphinx\IndexSchema |
Информация о схеме индекса Sphinx, связанного с этим классом AR. |
| выбрасывает | yii\base\InvalidConfigException |
если индекс для класса AR не существует. |
getSnippet() public method
Возвращает текущее значение сниппета или генерирует новое из заданного совпадения.
| public string getSnippet ( $match = null, $options = [] ) | ||
|---|---|---|
| $match | string |
Запрос источника сниппета |
| $options | array |
Список опций в формате: имяОпции => значениеОпции |
| возвращает | string |
Значение сниппета |
getSnippetSource() public method
Возвращает строку, которая должна использоваться в качестве источника для создания сниппета для этого экземпляра Active Record.
Подклассы должны реализовать этот метод, чтобы вернуть фактический текст источника сниппета. Например:
public function getSnippetSource()
{
return $this->snippetSourceRelation->content;
}
| public string getSnippetSource ( ) | ||
|---|---|---|
| возвращает | string |
Строка источника сниппета. |
| выбрасывает | yii\base\NotSupportedException |
если это не поддерживается классом Active Record |
indexName() public static method
Объявляет имя индекса Sphinx, связанного с этим классом AR.
По умолчанию этот метод возвращает имя класса в качестве имени индекса, вызывая yii\helpers\Inflector::camel2id(). Например, 'Article' становится 'article', а 'StockItem' становится 'stock_item'. Вы можете переопределить этот метод, если индекс не называется по этой соглашения.
| public static string indexName ( ) | ||
|---|---|---|
| возвращает | string |
Имя индекса |
insert() public method
Вставляет строку в связанный индекс Sphinx, используя значения атрибутов этой записи.
Этот метод выполняет следующие шаги в указанном порядке:
- вызов beforeValidate(), если
$runValidationимеет значение true. Если валидация завершится неудачно, остальные шаги будут пропущены; - вызов afterValidate(), если
$runValidationимеет значение true. - вызов beforeSave(). Если метод возвращает false, остальные шаги будут пропущены;
- вставка записи в индекс. Если это завершится неудачно, остальные шаги будут пропущены;
- вызов afterSave();
На шагах 1, 2, 3 и 5 выше события EVENT_BEFORE_VALIDATE, EVENT_BEFORE_INSERT, EVENT_AFTER_INSERT и EVENT_AFTER_VALIDATE будут сгенерированы соответствующими методами.
Будут вставлены только \yii\sphinx\changedAttributes.
Например, чтобы вставить запись о статье:
$article = new Article(); $article->id = $id; $article->genre_id = $genreId; $article->content = $content; $article->insert();
| public boolean insert ( $runValidation = true, $attributes = null ) | ||
|---|---|---|
| $runValidation | boolean |
Выполнять ли валидацию перед сохранением записи. Если валидация завершится неудачно, запись не будет вставлена. |
| $attributes | array |
Список атрибутов, которые нужно сохранить. По умолчанию null, что означает, что будут сохранены все атрибуты, загруженные из индекса. |
| возвращает | boolean |
Являются ли атрибуты валидными и успешно ли вставлена запись. |
| выбрасывает | Exception |
в случае неудачной вставки. |
isTransactional() public method
Возвращает значение, указывающее, является ли указанная операция транзакционной в текущем $scenario.
| public boolean isTransactional ( $operation ) | ||
|---|---|---|
| $operation | integer |
Операция для проверки. Возможные значения: OP_INSERT, OP_UPDATE и OP_DELETE. |
| возвращает | boolean |
Является ли указанная операция транзакционной в текущем $scenario. |
populateRecord() public static method
Заполняет объект активной записи данными из строки базы данных/хранилища.
Это внутренний метод, предназначенный для вызова для создания объектов активной записи после извлечения данных из базы данных. Он в основном используется yii\sphinx\ActiveQuery для заполнения результатов запроса активными записями.
При ручном вызове этого метода вы должны вызвать afterFind() на созданной записи, чтобы запустить после нахождения события.
| public static void populateRecord ( $record, $row ) | ||
|---|---|---|
| $record | yii\db\BaseActiveRecord |
Запись, которая должна быть заполнена. В большинстве случаев это будет экземпляр, созданный instantiate() предварительно. |
| $row | array |
Значения атрибутов (имя => значение) |
primaryKey() public static method
Возвращает имя первичного ключа для этого класса AR.
Реализация по умолчанию вернёт первичный ключ, как объявленный в индексе Sphinx, связанном с этим классом AR.
Обратите внимание, что должна возвращаться массив, даже для таблицы с единственным первичным ключом.
| public static string[] primaryKey ( ) | ||
|---|---|---|
| возвращает | string[] |
Первичные ключи связанного индекса Sphinx. |
setSnippet() public method
| public void setSnippet ( $snippet ) | ||
|---|---|---|
| $snippet | string | |
transactions() public method
Объявляет, какие операции должны выполняться в транзакции в разных сценариях.
Поддерживаемые операции БД: OP_INSERT, OP_UPDATE и OP_DELETE, которые соответствуют методам insert(), update() и delete() соответственно. По умолчанию, эти методы НЕ заключены в транзакцию.
В некоторых случаях, для обеспечения согласованности данных, вы можете захотеть заключить некоторые или все из них в транзакции. Вы можете сделать это, переопределив этот метод и вернув операции, которые должны быть транзакционными. Например,
return [
'admin' => self::OP_INSERT,
'api' => self::OP_INSERT | self::OP_UPDATE | self::OP_DELETE,
// the above is equivalent to the following:
// 'api' => self::OP_ALL,
];
Это объявление указывает, что в сценарии "admin" операция вставки (insert()) должна выполняться в транзакции; и в сценарии "api" все операции должны выполняться в транзакции.
| public array transactions ( ) | ||
|---|---|---|
| возвращает | array |
Объявления транзакционных операций. Ключи массива — имена сценариев, а значения — соответствующие операции транзакции. |
update() public method
Сохраняет изменения в этой активной записи в связанный индекс Sphinx.
Этот метод выполняет следующие шаги в указанном порядке:
- вызов beforeValidate(), когда
$runValidationимеет значение true. Если валидация завершится неудачно, остальные шаги будут пропущены; - вызов afterValidate(), когда
$runValidationимеет значение true. - вызов beforeSave(). Если метод вернёт false, остальные шаги будут пропущены;
- сохранение записи в базе данных. Если произойдёт ошибка, остальные шаги будут пропущены;
- вызов afterSave();
В шагах 1, 2, 3 и 5 события EVENT_BEFORE_VALIDATE, EVENT_BEFORE_UPDATE, EVENT_AFTER_UPDATE и EVENT_AFTER_VALIDATE будут сгенерированы соответствующими методами.
В базу данных будут сохранены только значения из \yii\sphinx\changedAttributes.
Например, для обновления записи статьи:
$article = Article::findOne($id); $article->genre_id = $genreId; $article->group_id = $groupId; $article->update();
Обратите внимание, что обновление может не повлиять на ни одну строку в таблице. В этом случае этот метод вернёт 0. По этой причине вам следует использовать следующий код для проверки успешности выполнения update():
if ($this->update() !== false) {
// update successful
} else {
// update failed
}
| public целое число|false update ( $runValidation = true, $attributeNames = null ) | ||
|---|---|---|
| $runValidation | boolean |
Выполнять ли валидацию перед сохранением записи. Если валидация завершится неудачно, запись не будет добавлена в базу данных. |
| $attributeNames | массив |
Список атрибутов, которые необходимо сохранить. По умолчанию null, что означает сохранение всех атрибутов, загруженных из базы данных. |
| return | целое число|false |
Количество изменённых строк или |
| throws | yii\db\StaleObjectException |
если включена оптимистическая блокировка и обновляемые данные устарели. |
| throws | Исключение |
в случае неудачи при обновлении. |
updateAll() public static method
Обновляет всю таблицу с помощью предоставленных значений атрибутов и условий.
Например, чтобы изменить статус на 1 для всех статей, у которых статус равен 2:
Article::updateAll(['status' => 1], 'status = 2');
| public static целое число updateAll ( $attributes, $condition = '', $params = [] ) | ||
|---|---|---|
| $attributes | массив |
Значения атрибутов (имя-значение) для сохранения в таблице |
| $condition | строка|массив |
Условия, которые будут добавлены в часть WHERE запроса UPDATE. Обратитесь к yii\sphinx\Query::where() для получения информации о задании этого параметра. |
| $params | массив |
Параметры (имя => значение) для привязки к запросу. |
| return | целое число |
Количество обновлённых строк |
updateInternal() protected method
См. также \yii\sphinx\CActiveRecord::update().
| protected void updateInternal ( $attributes = null ) | ||
|---|---|---|
| $attributes | ||
| throws | yii\db\StaleObjectException | |
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-sphinx-activerecord.html