Класс Model
Объектно-реляционный маппер.
Объектная модель данных, поддерживаемая DBO. Автоматически выбирает имя таблицы базы данных, основанное на множественном числе и нижнем регистре имени класса объекта (т.е. класс 'User' => таблица 'users'; класс 'Man' => таблица 'men'). Таблица должна иметь по крайней мере первичный ключ 'id auto_increment'.
- CakeObject
-
Model реализует CakeEventListener
Прямые подклассы
Косвенные подклассы
Ссылка: https://book.cakephp.org/2.0/en/models.html
Авторские права: Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org)
Лицензия: MIT License
Расположение: Cake/Model/Model.php
Краткое описание свойств
- Содержит объекты поведения, которые в настоящее время привязаны к этой модели.
$Behaviorspublic -
$__backAssociationpublicВременно хранит ассоциации моделей, чтобы позволить динамическую (от)вязку.array - Взаимосвязь, содержащаяся в модели.
array -
$__backInnerAssociationpublicВнутренняя взаимосвязь модели.array -
$__backOriginalAssociationpublicИсходная взаимосвязь модели.array -
$__safeUpdateModepublicbooleanБезопасный режим обновления. Если true, это предотвращает Model::save() от генерации запроса с WHERE 1 = 1 при условии гонки.
-
$_associationKeysprotectedСписок ключей ассоциаций по умолчанию.array -
$_associationsprotectedХранит предоставленные/сгенерированные имена ключей ассоциаций и другие данные для всех ассоциаций.array -
$_eventManagerprotectedЭкземпляр CakeEventManager, используемый этой моделью для отправки внутренних событий.
-
$_insertIDprotectedИдентификатор записи модели, которая была последней вставлена.integer -
$_schemaprotectedМетаданные таблицы по отдельным полям.array -
$_sourceConfiguredprotectedБыла ли настроена база данных.boolean - Экземпляр ModelValidator.
$_validatorprotected -
$actsAspublicarrayСписок поведений для загрузки при инициализации объекта модели. Параметры могут передаваться поведением, используя имя поведения в качестве индекса.
-
$aliaspublicПсевдоним для модели.string -
$belongsTopublicПодробный список ассоциаций belongsTo.array -
$cacheQueriespublicbooleanВключить или отключить кеширование запросов для этой модели. Это включает только кеширование в памяти, результаты не сохраняются за пределами текущего запроса.
-
$cacheSourcespublicВключить или отключить кеширование источников для этой модели.boolean -
$datapublicКонтейнер данных, которые эта модель получает из постоянного хранилища (обычно базы данных).array -
$displayFieldpublicПользовательское имя отображаемого поля. Поля отображения используются Scaffold, в элементах OPTION выпадающих списков.string -
$findMethodspublicСписок допустимых параметров метода поиска, предоставленных в качестве первого параметра для find().array -
$findQueryTypepublicТип запроса поиска, выполняемого в настоящее время.string -
$hasAndBelongsToManypublicПодробный список ассоциаций hasAndBelongsToMany.array -
$hasManypublicПодробный список ассоциаций hasMany.array -
$hasOnepublicПодробный список ассоциаций hasOne.array -
$idpublicmixedЗначение первичного ключа ID записи, на которую в данный момент указывает эта модель. Автоматически устанавливается после вставки в базу данных.
-
$namepublicИмя модели.string -
$orderpublicИмя(на) столбца(ов) и направление(ия) сортировки результатов поиска по умолчанию.string -
$pluginpublicПлагин, к которому принадлежит модель.string -
$primaryKeypublicИмя поля первичного ключа для этой модели.string -
$recursivepublicintegerКоличество ассоциаций, по которым нужно выполнить рекурсию во время вызовов find. По умолчанию извлекается только первый уровень.
-
$schemaNamepublicФизическое имя схемы/базы данных для этой модели. Автоматически устанавливается во время создания модели.string -
$tablepublicИмя таблицы для этой модели.string -
$tablePrefixpublicПрефикс таблицы базы данных для таблиц в модели.string -
$tableToModelpublicСписок имён таблиц, включённых в описание модели. Используется для ассоциаций.array -
$useConsistentAfterFindpublicbooleanЕсли true, afterFind будет передавать согласованный отформатированный $results в случае, если $primary false. Формат будет таким, как следующий.
-
$useDbConfigpublicИмя подключения к источнику данных базы данных, которое использует эта модель.string -
$useTablepublicПользовательское имя таблицы базы данных, или null/false, если ассоциация таблицы не требуется.string -
$validatepublicarrayСписок правил валидации. Он должен быть массивом с именем поля в качестве ключа и использованием в качестве значения одной из следующих возможностей
-
$validationDomainpublicИмя домена строки валидации для использования при переводе сообщений об ошибках валидации.string -
$validationErrorspublicСписок ошибок валидации.array -
$virtualFieldspublicarrayМассив виртуальных полей, которые есть у этой модели. Виртуальные поля – это алиасированные SQL выражения. Поля, добавленные в этот свойство, будут считываться как другие поля в модели, но не будут сохраняемыми.
-
$whitelistpublicБелый список полей, разрешенных для сохранения.array
Краткое описание методов
- __call() public
Обрабатывает пользовательские вызовы методов, такие как findBy
для моделей БД, и пользовательские вызовы RPC для удалённых источников данных. - __construct() publicКонструктор. Связывает таблицу базы данных модели с объектом.
- __get() publicВозвращает значение запрошенной переменной, если она может быть установлена с помощью __isset().
- __isset() publicОбрабатывает леничную загрузку ассоциаций модели, проверяя массивы ассоциаций на наличие запрошенной переменной.
- _addToWhiteList() protectedВспомогательный метод для saveAll() и аналогичных, для добавления внешнего ключа в список полей.
- _clearCache() protectedОчищает кэш для этой модели.
- _collectForeignKeys() protectedСбор внешних ключей из ассоциаций.
- _constructLinkedModel() protectedЗащищённый вспомогательный метод для создания связанных моделей заданного класса.
- _createLinks() protectedСоздание набора ассоциаций.
- _deleteDependent() protectedКаскадное удаление моделей через связанные записи hasMany и hasOne дочерних записей.
- _deleteLinks() protectedКаскадное удаление моделей через ключи соединения HABTM.
- _doSave() protected
Сохраняет данные модели (в зависимости от белого списка, если он предоставлен) в базе данных. По умолчанию валидация выполняется перед сохранением.
- _filterResults() protectedПропускает результаты запроса через методы модели и поведения afterFind().
- _findAll() protectedОбрабатывает логику фильтрации before/after для операций find('all'). Вызывается только методом Model::find().
- _findCount() protectedОбрабатывает логику фильтрации before/after для операций find('count'). Вызывается только методом Model::find().
- _findFirst() protectedОбрабатывает логику фильтрации before/after для операций find('first'). Вызывается только методом Model::find().
- _findList() protectedОбрабатывает логику фильтрации before/after для операций find('list'). Вызывается только методом Model::find().
- _findNeighbors() protected
Определяет значение предыдущего поля, затем использует логику для поиска «охватывающих» строк и возвращает их.
- _findThreaded() protected
В случае неоднозначных результатов (несколько результатов верхнего уровня с различными parent_id) результаты верхнего уровня с различными parent_id, отличными от первого результата, будут отброшены
- _generateAssociation() protectedПостроение ассоциации на основе массива из строки.
- _isUUIDField() protectedПроверка, является ли переданное поле полем UUID.
- _normalizeXmlData() protectedНормализация
Xml::toArray()для использования вModel::save() - _prepareUpdateFields() protectedВспомогательный метод для
Model::updateCounterCache(). Проверяет поля, которые будут обновлены, для - _readDataSource() protectedЧтение из источника данных.
- _saveMulti() protectedСохранение данных модели hasAndBelongsToMany в базу данных.
- _setAliasData() protectedПеремещение значений в псевдоним.
- afterDelete() publicВызывается после каждой операции удаления.
- afterFind() public
Вызывается после каждой операции поиска. Может использоваться для изменения любых возвращаемых результатов find(). Значение возврата должно быть (изменёнными) результатами.
- afterSave() publicВызывается после каждой успешной операции сохранения.
- afterValidate() publicВызывается после проверки данных на ошибки.
- associations() publicПолучение ассоциаций.
- beforeDelete() publicВызывается перед каждой операцией удаления.
- beforeFind() public
Вызывается перед каждой операцией поиска. Возвращает false, если нужно прервать вызов find, иначе возвращает (изменённые) данные запроса.
- beforeSave() public
Вызывается перед каждой операцией сохранения после валидации. Возвращение результата отличного от true прерывает сохранение.
- beforeValidate() public
Вызывается во время операций валидации перед валидацией. Обратите внимание, что пользовательские правила валидации могут быть определены в $validate.
- bindModel() publicСвязывание ассоциаций модели на лету.
- buildQuery() publicСтроит массив запроса, который используется источником данных для генерации запроса к данным.
- clear() publicДанная функция — удобная обертка для создания (false) и, как следует из названия, очищает id, данные и ошибки валидации.
- create() public
Инициализирует модель для записи новой записи, загружая значения по умолчанию для тех полей, которые не определены в $data, и очищая предыдущие ошибки валидации. Особенно полезно для сохранения данных в циклах.
- deconstruct() publicРазбирает сложный тип данных (массив или объект) в единственное значение поля.
- delete() publicУдаляет запись для данного ID. Если ID не указан, используется текущий ID. Возвращает true при успехе.
- deleteAll() publicУдаляет несколько записей модели на основе набора условий.
- escapeField() public
Экранирует имя поля и добавляет имя модели в префикс. Экранирование выполняется в соответствии с правилами текущего драйвера базы данных.
- exists() publicВозвращает true, если запись с указанным ID существует.
- field() public
Возвращает содержимое одного поля, учитывая заданные условия, первой записи в заданном порядке.
- find() publicВыполняет запрос к источнику данных и возвращает массив результатов.
- getAffectedRows() publicВозвращает количество строк, затронутых последним запросом.
- getAssociated() publicПолучает все модели, с которыми связана данная модель.
- getColumnType() publicВозвращает тип столбца столбца в модели.
- getColumnTypes() publicВозвращает ассоциативный массив имён полей и типов столбцов.
- getDataSource() publicПолучает DataSource, к которому привязана данная модель.
- getEventManager() public
Возвращает экземпляр CakeEventManager, обрабатывающий любые обратные вызовы. Вы можете использовать этот экземпляр для регистрации новых слушателей или обратных вызовов для событий модели или создавать свои события и запускать их по своему желанию.
- getID() publicВозвращает ID текущей записи.
- getInsertID() publicВозвращает ID последней записи, вставленной этой моделью.
- getLastInsertID() publicВозвращает ID последней записи, вставленной этой моделью.
- getNumRows() publicВозвращает количество строк, возвращённых последним запросом.
- getVirtualField() publicВозвращает выражение для виртуального поля модели.
- hasAny() publicВозвращает true, если существует запись, удовлетворяющая заданным условиям.
- hasField() publicВозвращает true, если указанное поле существует в таблице базы данных модели.
- hasMethod() public
Проверяет, доступен ли метод для модели. Будет проверено как собственные методы модели, так и унаследованные, и методы, которые могут вызываться через поведения.
- implementedEvents() public
Возвращает список всех событий, которые будут срабатывать в модели в течение ее жизненного цикла. Вы можете переопределить эту функцию, чтобы добавить свои собственные обработчики событий.
- invalidFields() publicВозвращает массив полей, которые не прошли валидацию текущей модели.
- invalidate() public
Отмечает поле как невалидное, необязательно задавая имя правила валидации (в случае множественной валидации для поля), которое было нарушено.
- isForeignKey() publicВозвращает true, если имя данного поля является внешним ключом в этой модели.
- isUnique() publicВозвращает false, если какие-либо переданные поля совпадают с любыми их значениями (по умолчанию, все, если $or = false).
- isVirtualField() publicВозвращает true, если указанное поле является виртуальным полем модели.
- joinModel() public
Возвращает имя и поля, которые будут использоваться моделью объединения. Это позволяет указать поля объединения в определении ассоциации.
- onError() publicВызывается при возникновении ошибки на уровне источника данных.
- query() publicВозвращает результат набора для данного SQL-запроса. Пользовательские SQL-запросы должны выполняться с помощью этого метода.
- read() public
Возвращает список полей из базы данных и устанавливает текущие данные модели (Model::$data) с найденной записью.
- resetAssociations() public
Сбрасывает массивы ассоциаций модели до исходных, определенных в модели. Обычно вызывается в конце каждого вызова Model::find()
- save() public
Сохраняет данные модели (на основе белого списка, если предоставлен) в базе данных. По умолчанию, валидация выполняется перед сохранением. Метод проброса в _doSave() с обработкой транзакций.
- saveAll() public
Обратный метод совместимости для: saveMany(), validateMany(), saveAssociated() и validateAssociated()
- saveAssociated() publicСохраняет одну запись, а также все ее непосредственно связанные записи.
- saveField() public
Сохраняет значение одного поля в базе данных на основе текущего идентификатора модели.
- saveMany() publicСохраняет несколько отдельных записей для одной модели.
- schema() public
Возвращает массив метаданных таблицы (названия и типы столбцов) из базы данных. $field => ключи(тип, null, значение по умолчанию, ключ, длина, дополнительно)
- set() publicЭта функция выполняет два действия:
- setDataSource() publicУстанавливает источник данных, к которому привязана эта модель.
- setInsertID() publicУстанавливает идентификатор последней записи, которую вставила эта модель.
- setSource() publicУстанавливает пользовательскую таблицу для вашего класса модели. Используется вашим контроллером для выбора таблицы базы данных.
- unbindModel() publicОтключает ассоциации на лету.
- updateAll() publicОбновляет несколько записей модели на основе набора условий.
- updateCounterCache() publicОбновляет кеш счетчиков ассоциаций belongsTo после операции сохранения или удаления.
- validateAssociated() publicВалидирует одну запись, а также все ее непосредственно связанные записи.
- validateMany() publicВалидирует несколько отдельных записей для одной модели.
- validates() public
Возвращает true, если все поля проходят валидацию. Также будут валидированы ассоциации hasAndBelongsToMany, которые используют ключ 'with'. Поскольку _saveMulti не может выйти из операции сохранения.
- validator() publicВозвращает экземпляр валидатора модели для этого класса.
Подробное описание методов
__call()source public
__call( string $method , array $params )
Обрабатывает вызовы пользовательских методов, таких как findBy
Параметры
- строка
$method - Имя вызываемого метода.
- массив
$params - Параметры метода.
Возвращает
смешанный типТо, что возвращает вызываемый метод
__construct()source public
__construct( boolean|integer|string|array $id false , string $table null , string $ds null )
Конструктор. Связывает таблицу базы данных модели с объектом.
Если $id является массивом, его можно использовать для передачи нескольких параметров в модель.
-
id: Идентификатор для начала работы модели. -
table: Таблица для использования этой моделью. -
ds: Имя соединения базы данных, к которому подключена эта модель. -
name: Имя модели, например, Post. -
alias: Псевдоним модели, используется для регистрации экземпляра вClassRegistry. Например,ParentThread
Переопределение метода Model::__construct.
При переопределении Model::__construct() следует учитывать необходимость передачи всех трех аргументов в parent::__construct($id, $table, $ds);
Динамическое создание моделей
Вы можете динамически создавать экземпляры моделей, используя синтаксис массива $id.
$Post = new Model(array('table' => 'posts', 'name' => 'Post', 'ds' => 'connection2')); Создаст модель, привязанную к таблице posts в соединении connection2. Динамическое создание моделей полезно, когда вам нужна модель объекта без ассоциаций или привязанных поведений.
Параметры
- логическое значение, целое число, строка или массив
$idнеобязательно false Установите этот идентификатор для этой модели при запуске. Также может быть массивом параметров, см. выше.
- строка
$tableнеобязательно null - Имя таблицы базы данных для использования.
- строка
$dsнеобязательно null - Имя соединения источника данных.
Переопределяет
CakeObject::__construct() __get()source public
__get( string $name )
Возвращает значение запрошенной переменной, если она может быть установлена с помощью __isset()
Параметры
- строка
$name - Запрошенная переменная для получения ее значения или ссылки
Возвращает
смешанный типЗначение запрошенной переменной, если она установлена
__isset()source public
__isset( string $name )
Обрабатывает леничную загрузку ассоциаций моделей, проверяя массивы ассоциаций на наличие запрошенной переменной.
Параметры
- строка
$name - Переменная, проверяемая на существование в классе
Возвращает
логическое значениеtrue, если переменная существует (если это не загруженная ассоциация модели, она будет создана), иначе false
_addToWhiteList()source protected
_addToWhiteList( string $key , array $options )
Вспомогательный метод для saveAll() и других методов, для добавления внешнего ключа в список полей
Параметры
- строка
$key - Имя поля, которое нужно добавить в список
- массив
$options - Список параметров
Возвращает
массивпараметры
_clearCache()source protected
_clearCache( string $type null )
Очищает кеш для этой модели.
Параметры
- строка
$typeнеобязательный null Если null, удаляются кэшированные представления, если Cache.check равен true. Будет использоваться для удаления кэша запросов.
Возвращает
смешанныйTrue при удалении, null в противном случае
_collectForeignKeys()source protected
_collectForeignKeys( string $type 'belongsTo' )
Сбор внешних ключей из ассоциаций.
Параметры
- строка
$typeнеобязательный 'belongsTo' - Тип ассоциации.
Возвращает
массив_constructLinkedModel()source protected
_constructLinkedModel( string $assoc , string $className null , string $plugin null )
Защищенный вспомогательный метод для создания связанных моделей заданного класса.
Параметры
- строка
$assoc - Имя ассоциации
- строка
$classNameнеобязательный null - Имя класса
- строка
$pluginнеобязательный null -
Имя плагина, где расположен $className. Примеры: public $hasMany = array('Assoc' => array('className' => 'ModelName')); использование: $this->Assoc->modelMethods();
public $hasMany = array('ModelName'); usage: $this->ModelName->modelMethods();
_deleteDependent()source protected
_deleteDependent( string $id , boolean $cascade )
Каскадное удаление модели через связанные записи hasMany и hasOne дочерних записей.
Параметры
- строка
$id - Идентификатор удаленной записи
- булево
$cascade - Устанавливается в true для удаления записей, зависящих от этой записи
_deleteLinks()source protected
_deleteLinks( string $id )
Каскадное удаление модели через ключи объединения HABTM.
Параметры
- строка
$id - Идентификатор удаленной записи
_doSave()source protected
_doSave( array $data null , array $options array() )
Сохранение данных модели (в зависимости от белого списка, если он предоставлен) в базе данных. По умолчанию валидация выполняется перед сохранением.
Параметры
- массив
$dataнеобязательный null - Данные для сохранения.
- массив
$optionsнеобязательный array() -
Может содержать следующие ключи:
- validate: Устанавливается в true/false для включения или отключения валидации.
- fieldList: Массив полей, которые вы хотите разрешить для сохранения.
- callbacks: Устанавливается в false для отключения обратного вызова. Использование 'before' или 'after' включит только эти обратные вызовы.
-
counterCache: Булево значение для управления обновлением кэша счётчиков (если есть)
Возвращает
смешанныйПри успехе Model::$data, если он не пуст, или true, false при ошибке
Выбрасывает
PDOExceptionСсылка
https://book.cakephp.org/2.0/ru/models/saving-your-data.html_filterResults()source protected
_filterResults( array $results , boolean $primary true )
Пропускает результаты запроса через методы модели и поведения afterFind().
Параметры
- массив
$results - Результаты для фильтрации
- булево
$primaryнеобязательный true - Если это результаты основной модели (результаты из модели, где была выполнена операция поиска)
Возвращает
массивНабор отфильтрованных результатов
Срабатывает
Model.afterFind $this, массив($results, $primary)_findAll()source protected
_findAll( string $state , array $query , array $results array() )
Обрабатывает логику фильтрации before/after для операций find('all'). Вызывается только Model::find().
Параметры
- строка
$state - Либо "before", либо "after"
- массив
$query - Запрос.
- массив
$resultsнеобязательный array() - Результаты.
Возвращает
массивСм. также
Model::find()_findCount()source protected
_findCount( string $state , array $query , array $results array() )
Обрабатывает логику фильтрации before/after для операций find('count'). Вызывается только Model::find().
Параметры
- строка
$state - Либо "before", либо "after"
- массив
$query - Запрос.
- массив
$resultsнеобязательный array() - Результаты.
Возвращает
целое числоКоличество найденных записей или false
См. также
Model::find()_findFirst()source protected
_findFirst( string $state , array $query , array $results array() )
Обрабатывает логику фильтрации before/after для операций find('first'). Вызывается только Model::find().
Параметры
- строка
$state - Либо "before", либо "after"
- массив
$query - Запрос.
- массив
$resultsнеобязательный array() - Результаты.
Возвращает
массивСм. также
Model::find()_findList()source protected
_findList( string $state , array $query , array $results array() )
Обрабатывает логику фильтрации before/after для операций find('list'). Вызывается только Model::find().
Параметры
- строка
$state - Либо "before", либо "after"
- массив
$query - Запрос.
- массив
$resultsнеобязательный array() - Результаты.
Возвращает
массивПары ключ/значение первичных ключей/значений поля отображения всех найденных записей
См. также
Model::find()_findNeighbors()source protected
_findNeighbors( string $state , array $query , array $results array() )
Определяет предыдущее значение поля, затем использует логику для поиска записей «обёртки» и возвращает их.
Параметры
- строка
$state - Либо "before", либо "after"
- массив
$query - Запрос.
- массив
$resultsнеобязательный array() - Результаты.
Возвращает
массив_findThreaded()source protected
_findThreaded( string $state , array $query , array $results array() )
В случае неоднозначных результатов (несколько результатов верхнего уровня с различными parent_id) результаты верхнего уровня с различными parent_id, отличными от первого результата, будут отброшены.
Параметры
- строка
$state - Либо "before", либо "after".
- массив
$query - Запрос.
- массив
$resultsнеобязательный array() - Результаты.
Возвращает
массивРезультаты потоковой обработки
_generateAssociation()source protected
_generateAssociation( string $type , string $assocKey )
Создает ассоциацию на основе массива из строки.
Параметры
- строка
$type - 'belongsTo', 'hasOne', 'hasMany', 'hasAndBelongsToMany'
- строка
$assocKey - Ключ ассоциации.
_isUUIDField()source protected
_isUUIDField( string $field )
Проверка, является ли переданное поле полем UUID.
Параметры
- строка
$field - поле для проверки
Возвращает
булево_normalizeXmlData()source protected
_normalizeXmlData( array $xml )
Нормализовать Xml::toArray() для использования в Model::save()
Параметры
- массив
$xml - XML в виде массива
Возвращает
массив_prepareUpdateFields()source protected
_prepareUpdateFields( array $data )
Вспомогательный метод для Model::updateCounterCache(). Проверяет поля, которые будут обновлены, на
Параметры
- массив
$data - Поля записи, которые будут обновлены
Возвращает
массивВозвращает обновлённые значения внешних ключей вместе со значением 'old', содержащим старые значения, или пустой массив, если внешние ключи не обновлялись.
_readDataSource()source protected
_readDataSource( string $type , array $query )
Чтение из источника данных
Model::_readDataSource() используется всеми вызовами find() для чтения из источника данных и может быть переопределён для кэширования вызовов источника данных.
protected function _readDataSource($type, $query) {
$cacheName = md5(json_encode($query) . json_encode($this->hasOne) . json_encode($this->belongsTo));
$cache = Cache::read($cacheName, 'cache-config-name');
if ($cache !== false) {
return $cache;
}
$results = parent::_readDataSource($type, $query);
Cache::write($cacheName, $results, 'cache-config-name');
return $results;
} Параметры
- строка
$type - Тип операции поиска (все / первый / счёт / соседи / список / с потоками)
- массив
$query - Поля опций (условия / поля / соединения / ограничение / смещение / сортировка / страница / группа / обратные вызовы)
Возвращает
массив_saveMulti()source protected
_saveMulti( array $joined , integer|string $id , DataSource $db )
Сохраняет данные модели hasAndBelongsToMany в базе данных.
Параметры
- массив
$joined - Данные для сохранения
- целое число или строка
$id - ID записи в этой модели
-
DataSource$db - Экземпляр источника данных.
_setAliasData()source protected
_setAliasData( array $data )
Переместить значения в псевдоним
Параметры
- массив
$data - Данные.
Возвращает
массивafterDelete()source public
afterDelete( )
Вызывается после каждой операции удаления.
Ссылка
https://book.cakephp.org/2.0/ru/models/callback-methods.html#afterdeleteafterFind()source public
afterFind( mixed $results , boolean $primary false )
Вызывается после каждой операции поиска. Может использоваться для модификации результатов, возвращаемых методом find(). Значение возврата должно быть (изменёнными) результатами.
Параметры
- смешанное
$results - Результаты операции поиска
- логическое значение
$primaryнеобязательно false - Признак того, запрашивается ли эта модель напрямую (или как ассоциация)
Возвращает
смешанноеРезультат операции поиска
Ссылка
https://book.cakephp.org/2.0/ru/models/callback-methods.html#afterfindafterSave()source public
afterSave( boolean $created , array $options array() )
Вызывается после каждой успешной операции сохранения.
Параметры
- логическое значение
$created - True, если это сохранение создало новую запись
- массив
$optionsнеобязательно array() - Опции, переданные из Model::save().
Ссылка
https://book.cakephp.org/2.0/ru/models/callback-methods.html#aftersaveСм. также
Model::save()beforeDelete()source public
beforeDelete( boolean $cascade true )
Вызывается перед каждой операцией удаления.
Параметры
- логическое значение
$cascadeнеобязательно true - Если true, записи, зависящие от этой записи, также будут удалены
Возвращает
логическое значениеTrue, если операция должна продолжаться, false, если её следует прервать
Ссылка
https://book.cakephp.org/2.0/ru/models/callback-methods.html#beforedeletebeforeFind()source public
beforeFind( array $query )
Вызывается перед каждой операцией поиска. Возвращает false, если нужно прервать вызов поиска, иначе возвращает (изменённые) данные запроса.
Параметры
- массив
$query - Данные, используемые для выполнения этого запроса, т.е. условия, сортировка и т.д.
Возвращает
смешанноеtrue, если операция должна продолжаться, false, если её следует прервать; или изменённый $query для продолжения с новым $query
Ссылка
https://book.cakephp.org/2.0/ru/models/callback-methods.html#beforefindbeforeSave()source public
beforeSave( array $options array() )
Вызывается перед каждой операцией сохранения после валидации. Возвращает значение отличное от true, чтобы остановить сохранение.
Параметры
- массив
$optionsнеобязательно array() - Опции, переданные из Model::save().
Возвращает
логическое значениеTrue, если операция должна продолжаться, false, если её следует прервать
Ссылка
https://book.cakephp.org/2.0/ru/models/callback-methods.html#beforesaveСм. также
Model::save()beforeValidate()source public
beforeValidate( array $options array() )
Вызывается во время операций валидации перед валидацией. Обратите внимание, что пользовательские правила валидации могут быть определены в $validate.
Параметры
- массив
$optionsнеобязательно array() - Опции, переданные из Model::save().
Возвращает
логическое значениеTrue, если операция валидации должна продолжаться, false для прерывания
Ссылка
https://book.cakephp.org/2.0/ru/models/callback-methods.html#beforevalidateСм. также
Model::save()bindModel()source public
bindModel( array $params , boolean $reset true )
Связать ассоциации моделей на лету.
Если $reset равно false, ассоциация не будет сброшена до исходных значений, определённых в модели
Пример: Добавить новую привязку hasOne к модели Profile, которая не определена в исходном коде модели:
$this->User->bindModel(array('hasOne' => array('Profile')));
Привязки, которые не являются постоянными, будут сброшены при следующем вызове Model::find() для этой модели.
Параметры
- массив
$params - Набор привязок (индексированный по типу привязки)
- логическое значение
$resetнеобязательно true - Установите в false, чтобы сделать привязку постоянной
Возвращает
логическое значениеУспех
Ссылка
https://book.cakephp.org/2.0/ru/models/associations-linking-models-together.html#creating-and-destroying-associations-on-the-flybuildQuery()source public
buildQuery( string $type 'first' , array $query array() )
Строит массив запроса, который используется источником данных для генерации запроса получения данных.
Параметры
- строка
$typeнеобязательно 'first' - Тип операции поиска (все / первый / количество / соседи / список / нити)
- массив
$queryнеобязательно array() - Поля параметров (условия / поля / соединения / лимит / смещение / порядок / страница / группа / обратные вызовы)
Возвращает
массив|nullМассив запроса или null, если его невозможно построить по каким-либо причинам
Вызывает
Model.beforeFind $this, array($query)См. также
Model::find()clear()source public
clear( )
Эта функция — удобная обертка класса для создания (false) и, как следует из названия, очищает поля id, данные и ошибки валидации.
Возвращает
booleanВсегда true при успехе
См. также
Model::create()create()source public
create( boolean|array $data array() , boolean $filterKey false )
Инициализирует модель для записи новой записи, загружая значения по умолчанию для полей, не определённых в $data, и очищая предыдущие ошибки валидации. Особенно полезно для сохранения данных в циклах.
Параметры
- boolean|массив
$dataнеобязательно array() Необязательный массив данных для присваивания модели после её создания. Если null или false, значения по умолчанию схемы не объединяются.
- boolean
$filterKeyнеобязательно false - Если true, переопределяет любой ввод первичного ключа пустым значением
Возвращает
массивТекущее значение Model::data после объединения $data и/или значений по умолчанию из базы данных
Ссылка
https://book.cakephp.org/2.0/ru/models/saving-your-data.html#model-create-array-data-arraydeconstruct()source public
deconstruct( string $field , array|object $data )
Деконструирует сложный тип данных (массив или объект) в значение одного поля.
Параметры
- строка
$field - Имя поля, подлежащего деконструкции
- массив|объект
$data - Массив или объект, подлежащий деконструкции в поле
Возвращает
смешанноеРезультирующие данные, которые должны быть присвоены полю
delete()source public
delete( integer|string $id null , boolean $cascade true )
Удаляет запись для заданного ID. Если ID не указан, используется текущий ID. Возвращает true при успехе.
Параметры
- целое число|строка
$idнеобязательно null - ID записи для удаления
- boolean
$cascadeнеобязательно true - Установите в значение true, чтобы удалить записи, зависящие от этой записи
Возвращает
booleanTrue при успехе
Вызывает
Model.beforeDelete $this, array($cascade)Model.afterDelete $this
Ссылка
https://book.cakephp.org/2.0/ru/models/deleting-data.htmldeleteAll()source public
deleteAll( mixed $conditions , boolean $cascade true , boolean $callbacks false )
Удаляет несколько записей модели на основе набора условий.
Параметры
- смешанное
$conditions - Условия для соответствия
- boolean
$cascadeнеобязательно true - Установите в значение true, чтобы удалить записи, зависящие от этой записи
- boolean
$callbacksнеобязательно false - Выполнять обратные вызовы
Возвращает
booleanTrue при успехе, false при ошибке
Ссылка
https://book.cakephp.org/2.0/ru/models/deleting-data.html#deleteallescapeField()source public
escapeField( string $field null , string $alias null )
Экранирует имя поля и добавляет имя модели. Экранирование выполняется в соответствии с правилами текущего драйвера базы данных.
Параметры
- строка
$fieldнеобязательно null - Поле для экранирования (например: id)
- строка
$aliasнеобязательно null - Псевдоним модели (например: Пост)
Возвращает
строкаИмя экранированного поля для этой модели (например, id становится
Post.id).exists()source public
exists( integer|string $id null )
Возвращает true, если запись с заданным ID существует.
Если $id не передан, вызывается Model::getID(), чтобы получить текущий ID записи, а затем выполняется Model::find('count') на текущем конфигурированном источнике данных для определения существования записи в постоянном хранилище.
Параметры
- целое число|строка
$idнеобязательно null - ID записи для проверки существования
Возвращает
booleanTrue, если такая запись существует
field()source public
field( string $name , array $conditions null , string $order null )
Возвращает содержимое одного поля, заданного предоставленными условиями, первой записи в указанном порядке.
Параметры
- строка
$name - Имя поля для получения.
- массив
$conditionsнеобязательно null - SQL условия (по умолчанию NULL).
- строка
$orderнеобязательно null - SQL фрагмент ORDER BY.
Возвращает
строка|falseСодержание поля или false, если не найдено.
Ссылка
https://book.cakephp.org/2.0/ru/models/retrieving-your-data.html#model-fieldfind()source public
find( string $type 'first' , array $query array() )
Запрашивает источник данных и возвращает массив набора результатов.
Используется для выполнения операций поиска, где первый аргумент — тип операции поиска (все / первый / количество / соседи / список / нити), второй параметр — параметры для поиска (индексированный массив, включающий: 'conditions', 'limit', 'recursive', 'page', 'fields', 'offset', 'order', 'callbacks')
Например:
$model->find('all', array(
'conditions' => array('name' => 'Thomas Anderson'),
'fields' => array('name', 'email'),
'order' => 'field3 DESC',
'recursive' => 1,
'group' => 'type',
'callbacks' => false,
)); В дополнение к стандартным ключам запроса выше, вы можете предоставить специфичные для источника данных и поведения ключи. Например, при использовании источника данных на основе SQL вы можете использовать ключ joins для указания дополнительных соединений, которые должны быть частью запроса.
$model->find('all', array(
'conditions' => array('name' => 'Thomas Anderson'),
'joins' => array(
array(
'alias' => 'Thought',
'table' => 'thoughts',
'type' => 'LEFT',
'conditions' => '`Thought`.`person_id` = `Person`.`id`'
)
)
)); Отключение обратных вызовов
Ключ callbacks позволяет вам отключить или указать обратные вызовы, которые должны быть выполнены. Чтобы отключить обратные вызовы beforeFind и afterFind, установите 'callbacks' => false в ваших параметрах. Вы также можете установить параметр callbacks на 'before' или 'after', чтобы включить только указанный обратный вызов.
Добавление новых типов поиска
Поведения и типы поиска также могут определять пользовательские ключи поиска, которые передаются в find(). См. документацию по пользовательским типам поиска (https://book.cakephp.org/2.0/ru/models/retrieving-your-data.html#creating-custom-find-types), чтобы узнать, как реализовать пользовательские типы поиска.
Указание 'fields' для обозначения 'list':
- Если поля не указаны, то для ключа используется 'id', а для значения — 'model->displayField'.
- Если указано одно поле, для ключа используется 'id', а для значения — указанное поле.
- Если указаны три поля, они используются (в порядке) для ключа, значения и группы.
- В противном случае первые два поля используются для ключа и значения.
Примечание: find(list) + представления баз данных имеют проблемы с MySQL 5.0. Попробуйте обновить до MySQL 5.1, если у вас возникают проблемы с представлениями баз данных.
Примечание: find(count) имеет свои собственные значения возврата.
Параметры
- строка
$typeнеобязательно 'first' - Тип операции поиска (все / первый / количество / соседи / список / нити)
- массив
$queryнеобязательно array() - Поля параметров (условия / поля / соединения / лимит / смещение / порядок / страница / группа / обратные вызовы)
Возвращает
массив|nullМассив записей или Null при ошибке.
Ссылка
https://book.cakephp.org/2.0/ru/models/retrieving-your-data.htmlgetAffectedRows()source public
getAffectedRows( )
Возвращает количество строк, затронутых последним запросом.
Возвращает
integerКоличество строк
getAssociated()source public
getAssociated( string $type null )
Получает все модели, с которыми связана эта модель.
Параметры
- string
$typeoptional null - Только ассоциации результатов этого типа
Возвращает
array|nullАссоциации
getColumnType()source public
getColumnType( string $column )
Возвращает тип столбца столбца в модели.
Параметры
- string
$column - Имя столбца модели
Возвращает
stringТип столбца
getColumnTypes()source public
getColumnTypes( )
Возвращает ассоциативный массив имен полей и типов столбцов.
Возвращает
arrayТипы полей, индексированные по имени поля
getDataSource()source public
getDataSource( )
Получает DataSource, к которому привязана эта модель.
Возвращает
DataSourceОбъект DataSource
getEventManager()source public
getEventManager( )
Возвращает экземпляр менеджера CakeEventManager, который обрабатывает любые обратные вызовы. Вы можете использовать этот экземпляр для регистрации новых слушателей или обратных вызовов событий модели, или создавать собственные события и запускать их по своему усмотрению.
Возвращает
CakeEventManagergetID()source public
getID( integer $list 0 )
Возвращает ID текущей записи.
Параметры
- integer
$listoptional 0 - Индекс, на котором находится составной ID
Возвращает
mixedID текущей записи, false, если ID отсутствует
getInsertID()source public
getInsertID( )
Возвращает ID последней вставленной записи.
Возвращает
mixedПоследний вставленный ID
getLastInsertID()source public
getLastInsertID( )
Возвращает ID последней вставленной записи.
Возвращает
mixedПоследний вставленный ID
getNumRows()source public
getNumRows( )
Возвращает количество строк, возвращенных последним запросом.
Возвращает
integerКоличество строк
getVirtualField()source public
getVirtualField( string $field null )
Возвращает выражение для виртуального поля модели.
Параметры
- string
$fieldoptional null - Имя поля для поиска
Возвращает
mixedЕсли $field является строкой, выражение, привязанное к виртуальному полю $field. Если $field равен null, возвращает массив всех виртуальных полей модели или false, если таких полей нет.
hasAny()source public
hasAny( array $conditions null )
Возвращает true, если существует запись, удовлетворяющая заданным условиям.
Параметры
- array
$conditionsoptional null - Массив SQL-условий
Возвращает
booleanTrue, если такая запись существует
hasField()source public
hasField( string|array $name , boolean $checkVirtual false )
Возвращает true, если указанное поле существует в таблице базы данных модели.
Параметры
- string|array
$name - Имя поля для поиска или массив имен
- boolean
$checkVirtualoptional false - Проверяет, объявлено ли поле как виртуальное
Возвращает
mixedЕсли $name является строкой, возвращает boolean, указывающий, существует ли поле. Если $name является массивом имен полей, возвращает первое существующее поле или false, если таких полей нет.
hasMethod()source public
hasMethod( string $method )
Проверяет, доступен ли метод для модели. Это проверит собственные методы модели, унаследованные методы и методы, которые могут быть вызваны через поведения.
Параметры
- string
$method - Метод, который должен быть вызван.
Возвращает
booleanTrue, если метод доступен.
implementedEvents()source public
implementedEvents( )
Возвращает список всех событий, которые будут срабатывать в модели в течение ее жизненного цикла. Вы можете переопределить эту функцию, чтобы добавить свои собственные обработчики событий.
Возвращает
arrayРеализация
CakeEventListener::implementedEvents() invalidFields()source public
invalidFields( array|string $options array() )
Возвращает массив полей, которые не прошли валидацию в текущей модели.
Кроме того, заполняет свойство validationErrors модели тем же массивом.
Параметры
- array|string
$optionsoptional array() - Необязательный массив пользовательских параметров, которые должны быть доступны в обратном вызове beforeValidate
Возвращает
arrayМассив недопустимых полей и их сообщений об ошибках
См.
Model::validates()invalidate()source public
invalidate( string $field , mixed $value true )
Помечает поле как недопустимое, необязательно устанавливая имя правила валидации (в случае нескольких валидаций для поля), которое было нарушено.
Параметры
- string
$field - Имя поля, которое нужно сделать недопустимым
- mixed
$valueoptional true Имя правила валидации, которое не было нарушено, или сообщение об ошибке валидации, которое нужно вернуть. Если ключ валидации не указан, по умолчанию используется true.
isForeignKey()source public
isForeignKey( string $field )
Возвращает true, если заданное имя поля является внешним ключом в этой модели.
Параметры
- string
$field - Возвращает true, если входная строка заканчивается на "_id"
Возвращает
booleanTrue, если поле является внешним ключом, перечисленным в массиве belongsTo.
isUnique()source public
isUnique( array $fields , boolean|array $or true )
Возвращает false, если какие-либо переданные поля совпадают с какими-либо (по умолчанию, со всеми, если $or = false) их соответствующими значениями.
Может использоваться как метод валидации. При использовании в качестве метода валидации параметр $or содержит массив полей, подлежащих валидации.
Параметры
- array
$fields - Пары поле/значение для поиска (если значения не указаны, они извлекаются из $this->data)
- boolean|array
$oroptional true - Если false, все указанные поля должны совпадать, чтобы вернуть false
Возвращает
booleanFalse, если найдены какие-либо записи, соответствующие любым полям
isVirtualField()source public
isVirtualField( string $field )
Возвращает true, если указанное поле является виртуальным полем модели.
Параметры
- строка
$field - Имя поля для поиска
Возвращает
booleanУказывает, существует ли поле в качестве виртуального поля модели.
joinModel()source public
joinModel( string|array $assoc , array $keys array() )
Получает имя и поля, используемые моделью соединения. Это позволяет указывать поля соединения в определении ассоциации.
Параметры
- строка или массив
$assoc - Модель, подлежащая соединению
- массив
$keysнеобязательно массив() - Любые ключи соединения, которые должны быть объединены с запрошенными ключами
Возвращает
массивonError()source public
onError( )
Вызывается при возникновении ошибки на уровне источника данных.
Ссылка
https://book.cakephp.org/2.0/ru/models/callback-methods.html#onerrorquery()source public
query( string $sql )
Возвращает результат для данного SQL-запроса. Пользовательские SQL-запросы должны выполняться с помощью этого метода.
Метод может иметь 2-й и 3-й параметры.
- 2-й параметр: либо булево значение для управления кэшированием запросов, либо массив параметров для использования с заполнителями подготовленных заявлений.
- 3-й параметр: если 2-й аргумент предоставлен, булево значение для включения/выключения кэширования запросов.
Если параметр кэша запроса не указан во 2-м или 3-м аргументе, используется значение по умолчанию модели $cacheQueries.
Параметры
- строка
$sql - SQL-запрос
Возвращает
смешанноеМассив результатов или булево значение, указывающее на успех/неудачу в зависимости от выполненного запроса
Ссылка
https://book.cakephp.org/2.0/ru/models/retrieving-your-data.html#model-queryread()source public
read( string|array $fields null , integer|string $id null )
Возвращает список полей из базы данных и устанавливает текущие данные модели (Model::$data) с найденной записью.
Параметры
- строка или массив
$fieldsнеобязательно null - Строка имени одного поля или массив имен полей.
- целое число или строка
$idнеобязательно null - Идентификатор записи для чтения
Возвращает
массивМассив полей базы данных или false, если не найдено
Ссылка
https://book.cakephp.org/2.0/ru/models/retrieving-your-data.html#model-readresetAssociations()source public
resetAssociations( )
Сбрасывает массивы ассоциаций для модели до первоначально определенных в модели. Обычно вызывается в конце каждого вызова Model::find()
Возвращает
booleanУспех
save()source public
save( array $data null , boolean|array $validate true , array $fieldList array() )
Сохраняет данные модели (в соответствии с разрешенным списком, если он предоставлен) в базе данных. По умолчанию валидация выполняется перед сохранением. Метод-пропуска для _doSave() с обработкой транзакций.
Параметры
- массив
$dataнеобязательно null - Данные для сохранения.
- булево значение или массив
$validateнеобязательно true -
Либо булево значение, либо массив. Если булево значение, указывает, следует ли выполнять валидацию перед сохранением. Если массив, может содержать следующие ключи:
- atomic: Если true (по умолчанию), попытается сохранить запись в одной транзакции.
- validate: Устанавливается в true/false для включения или отключения валидации.
- fieldList: Массив полей, которые вы хотите разрешить для сохранения.
- callbacks: Устанавливается в false для отключения обратных вызовов. Использование 'before' или 'after' включит только эти обратные вызовы.
-
counterCache: Булево значение для управления обновлением кэш-счетчиков (если таковые имеются)
- массив
$fieldListнеобязательно массив() - Список полей, которые разрешено сохранить
Возвращает
смешанноеПри успехе Model::$data, если оно не пусто, или true; false при ошибке
Исключения
ИсключениеPDOException
Триггеры
Model.beforeSave $this, массив($options)Model.afterSave $this, массив($created, $options)
Ссылка
https://book.cakephp.org/2.0/ru/models/saving-your-data.htmlsaveAll()source public
saveAll( array $data array() , array $options array() )
Обратный метод для совместимости: saveMany(), validateMany(), saveAssociated() и validateAssociated()
Сохраняет несколько отдельных записей для одной модели; Также работает с одной записью, а также со всеми связанными записями.
Параметры
- массив
$dataнеобязательно массив() Данные записи для сохранения. Это может быть либо массив с числовыми индексами (для сохранения нескольких записей одного типа), либо массив, индексированный именем ассоциации.
- массив
$optionsнеобязательно массив() - Параметры для использования при сохранении данных записи, см. $options выше.
Возвращает
смешанноеПри атомарном выполнении: True при успехе, или false при ошибке. В противном случае: массив, аналогичный массиву $data, переданному, но значения установлены на true/false в зависимости от успешного/неуспешного сохранения каждой записи.
Ссылка
https://book.cakephp.org/2.0/ru/models/saving-your-data.html#model-saveassociated-array-data-null-array-options-arrayhttps://book.cakephp.org/2.0/ru/models/saving-your-data.html#model-saveall-array-data-null-array-options-array
saveAssociated()source public
saveAssociated( array $data null , array $options array() )
Сохраняет одну запись, а также все непосредственно связанные записи.
Параметры
- массив
$dataнеобязательно null - Данные записи для сохранения. Должен быть массивом, индексированным именем ассоциации.
- массив
$optionsнеобязательно массив() - Параметры для использования при сохранении данных записи, см. $options выше.
Возвращает
смешанноеПри атомарном выполнении: True при успехе, или false при ошибке. В противном случае: массив, аналогичный массиву $data, переданному, но значения установлены на true/false в зависимости от успешного/неуспешного сохранения каждой записи.
Исключения
PDOExceptionСсылка
https://book.cakephp.org/2.0/ru/models/saving-your-data.html#model-saveassociated-array-data-null-array-options-arraysaveField()source public
saveField( string $name , mixed $value , boolean|array $validate false )
Сохраняет значение одного поля в базе данных на основе текущего идентификатора модели.
Параметры
- строка
$name - Имя поля таблицы
- смешанный
$value - Значение поля
- логическое значение|массив
$validateнеобязательно false Либо логическое значение, либо массив. Если логическое значение, указывает, следует ли выполнять валидацию перед сохранением. Если массив, позволяет управлять параметрами 'validate', 'callbacks' и 'counterCache'. Смотрите Model::save() для подробностей по каждому параметру.
Возвращает
логическое значение|массивСмотрите Model::save() Ложь при ошибке или массив данных модели при успехе.
См. также
Model::save()Ссылка
https://book.cakephp.org/2.0/ru/models/saving-your-data.html#model-savefield-string-fieldname-string-fieldvalue-validate-falsesaveMany()source public
saveMany( array $data null , array $options array() )
Сохраняет несколько отдельных записей для одной модели.
Параметры
-
validate: Установите в значение false, чтобы отключить валидацию; true, чтобы валидировать каждую запись перед сохранением; 'first', чтобы валидировать все записи перед сохранением любой (по умолчанию), -
atomic: Если true (по умолчанию), попытается сохранить все записи в одной транзакции. Следует установить в значение false, если база данных/таблица не поддерживает транзакции. -
fieldList: Эквивалентно параметру $fieldList в Model::save() -
deep: Если установлено в значение true, все связанные данные также будут сохранены. -
callbacks: См. Model::save() -
counterCache: См. Model::save()
Параметры
- массив
$dataнеобязательно null - Данные записи для сохранения. Это должен быть массив с числовыми индексами
- массив
$optionsнеобязательно array() - Параметры для использования при сохранении данных записи, см. параметры $options выше.
Возвращает
смешанныйЕсли атомарно: True при успехе, false при ошибке. В противном случае: массив, похожий на массив $data, переданный, но значения установлены в true/false в зависимости от того, успешно ли была сохранена каждая запись.
Выбрасывает
PDOExceptionСсылка
https://book.cakephp.org/2.0/ru/models/saving-your-data.html#model-savemany-array-data-null-array-options-arrayschema()source public
schema( boolean|string $field false )
Возвращает массив метаданных таблицы (имена и типы столбцов) из базы данных. $field => keys(type, null, default, key, length, extra)
Параметры
- логическое значение|строка
$fieldнеобязательно false - Установите в значение true, чтобы перезагрузить схему, или строку, чтобы вернуть конкретное поле
Возвращает
массив|nullМассив метаданных таблицы
set()source public
set( string|array|SimpleXmlElement|DomNode $one , string $two null )
Эта функция выполняет два действия:
- определяет в массиве $one первичный ключ, и если он найден, устанавливает текущий идентификатор в значение $one[id]. Для всех ключей, кроме 'id', ключи и значения $one копируются в свойство 'data' этого объекта.
- Возвращает массив со всеми ключами и значениями $one. (Альтернативные входные данные: две строки, которые преобразуются в одномерный двухмерный массив с использованием $one в качестве ключа и $two в качестве его значения.)
Параметры
- строка|массив|SimpleXmlElement|DomNode
$one - Массив или строка данных
- строка
$twoнеобязательно null - Строковое значение для альтернативного метода входных данных
Возвращает
массив|nullДанные со всеми ключами и значениями $one, в противном случае null.
Ссылка
https://book.cakephp.org/2.0/ru/models/saving-your-data.htmlsetDataSource()source public
setDataSource( string $dataSource null )
Устанавливает источник данных, к которому привязана эта модель.
Параметры
- строка
$dataSourceнеобязательно null - Имя источника данных, как определено в app/Config/database.php
Выбрасывает
MissingConnectionExceptionsetInsertID()source public
setInsertID( integer|string $id )
Устанавливает идентификатор последней записи, вставленной этой моделью
Параметры
- целое число|строка
$id - Идентификатор последней вставленной записи
setSource()source public
setSource( string $tableName )
Устанавливает пользовательскую таблицу для вашего класса модели. Используется вашим контроллером для выбора таблицы базы данных.
Параметры
- строка
$tableName - Имя пользовательской таблицы
Выбрасывает
MissingTableExceptionесли таблица базы данных $tableName не найдена в источнике данных
unbindModel()source public
unbindModel( array $params , boolean $reset true )
Временно отключает ассоциации.
Если $reset равен false, ассоциация не будет сброшена к исходным значениям, определенным в модели.
Пример: Временно отключить ассоциации модели Заявки для уменьшения нагрузки на модель Пользователь:
$this->User->unbindModel(array('hasMany' => array('SupportRequest'))); Или альтернативно: $this->User->unbindModel(array('hasMany' => 'SupportRequest'));
Отключенные модели, которые не сделаны постоянными, будут сброшены при следующем вызове Model::find()
Параметры
- массив
$params - Набор связей для отключения (индексированные типом связи)
- логическое значение
$resetнеобязательно true - Установите в значение false, чтобы сделать отключение постоянным
Возвращает
логическое значениеУспех
Ссылка
https://book.cakephp.org/2.0/ru/models/associations-linking-models-together.html#creating-and-destroying-associations-on-the-flyupdateAll()source public
updateAll( array $fields , mixed $conditions true )
Обновляет несколько записей модели на основе набора условий.
Параметры
- массив
$fields Набор полей и значений, индексированных по полям. Поля обрабатываются как SQL-фрагменты. Для вставки буквальных значений вручную необходимо экранировать ваши данные.
- смешанный
$conditionsнеобязательно true - Условие соответствия, true для всех записей
Возвращает
логическое значениеTrue при успехе, false при ошибке
Ссылка
https://book.cakephp.org/2.0/ru/models/saving-your-data.html#model-updateall-array-fields-mixed-conditionsupdateCounterCache()source public
updateCounterCache( array $keys array() , boolean $created false )
Обновляет кэш счетчика ассоциаций belongsTo после операции сохранения или удаления.
Параметры
- массив
$keysнеобязательно array() - Необязательные данные внешнего ключа, по умолчанию - информация из $this->data
- логическое значение
$createdнеобязательно false True, если была создана новая запись, в противном случае обновляются только ассоциации с определенным 'counterScope'
validateAssociated()source public
validateAssociated( array $data , array $options array() )
Проверяет запись, а также все непосредственно связанные с ней записи.
Параметры
-
atomic: Если true (по умолчанию), возвращает boolean. Если false, возвращает массив. -
fieldList: Эквивалентно параметру $fieldList в Model::save() -
deep: Если установлено в true, проверяются не только непосредственно связанные данные, но и вложенные связанные данные.
Предупреждение: Этот метод может потенциально изменить переданный аргумент $data, Если вы этого не хотите, сделайте копию $data перед передачей его в этот метод
Параметры
- массив
$data - $data Данные записи для проверки. Должен быть массивом, индексированным по имени ассоциации.
- массив
$optionsнеобязательно array() - Параметры для использования при проверке данных записи (см. выше), см. также $options в validates().
Возвращаемое значение
array|booleanЕсли атомарно: True при успехе или false при неудаче. В противном случае: массив, аналогичный переданному массиву $data, но значения установлены в true/false в зависимости от того, успешно ли прошла проверка каждой записи.
validateMany()source public
validateMany( array $data , array $options array() )
Проверяет несколько отдельных записей для одной модели
Параметры
-
atomic: Если true (по умолчанию), возвращает boolean. Если false, возвращает массив. -
fieldList: Эквивалентно параметру $fieldList в Model::save() -
deep: Если установлено в true, все связанные данные также будут проверены.
Предупреждение: Этот метод может потенциально изменить переданный аргумент $data, Если вы этого не хотите, сделайте копию $data перед передачей его в этот метод
Параметры
- массив
$data - $data Данные записи для проверки. Должен быть массивом с числовыми индексами.
- массив
$optionsнеобязательно array() - Параметры для использования при проверке данных записи (см. выше), см. также $options в validates().
Возвращаемое значение
boolean|arrayЕсли атомарно: True при успехе или false при неудаче. В противном случае: массив, аналогичный переданному массиву $data, но значения установлены в true/false в зависимости от того, успешно ли прошла проверка каждой записи.
validates()source public
validates( array $options array() )
Возвращает true, если все поля проходят проверку. Будет проверять ассоциации hasAndBelongsToMany, которые используют ключ 'with' также. Поскольку _saveMulti не может завершить операцию сохранения.
Будет проверять текущие установленные данные. Используйте Model::set() или Model::create() для установки активных данных.
Параметры
- массив
$optionsнеобязательно array() - Необязательный массив пользовательских параметров, которые будут доступны в обратном вызове beforeValidate
Возвращаемое значение
booleanTrue, если нет ошибок
validator()source public
validator( ModelValidator $instance null )
Возвращает экземпляр валидатора модели для этого класса
Параметры
-
ModelValidator$instanceнеобязательно null Экземпляр валидатора модели. Если null, будет создан новый экземпляр ModelValidator с использованием текущего объекта модели
Возвращаемое значение
ModelValidatorНаследуемые методы из CakeObject
_mergeVars()source protected
_mergeVars( array $properties , string $class , boolean $normalize true )
Объединяет свойства объекта $property с свойством в определении $class. Значение этого класса для свойства будет объединено поверх значения $class'
Это обеспечивает некоторую DRY магию, предоставляемую CakePHP. Если вы хотите отключить ее, переопределите этот метод как пустую функцию.
Параметры
- массив
$properties - Имя свойств для объединения.
- строка
$class - Класс для объединения свойства с.
- boolean
$normalizeнеобязательно true - Установите в значение true, чтобы выполнить свойства через Hash::normalize() перед объединением.
_set()source protected
_set( array $properties array() )
Позволяет устанавливать несколько свойств объекта в одной строке кода. Будет устанавливать только свойства, которые являются частью объявления класса.
Параметры
- массив
$propertiesнеобязательно array() - Ассоциативный массив, содержащий свойства и соответствующие значения.
_stop()source protected
_stop( integer|string $status 0 )
Останавливает выполнение текущего скрипта. Оборачивает exit(), что упрощает тестирование.
Параметры
- целое число|строка
$statusнеобязательно 0 - см. http://php.net/exit для значений
dispatchMethod()source public
dispatchMethod( string $method , array $params array() )
Вызывает метод этого объекта с заданными параметрами. Предоставляет оберточку OO для call_user_func_array
Параметры
- строка
$method - Имя вызываемого метода
- массив
$paramsнеобязательно array() - Список параметров для использования при вызове $method
Возвращаемое значение
mixedВозвращает результат вызова метода
log()source public
log( string $msg , integer $type LOG_ERR , null|string|array $scope null )
Удобный метод для записи сообщения в CakeLog. См. CakeLog::write() для получения дополнительной информации о записи в журналы.
Параметры
- строка
$msg - Сообщение журнала
- целое число
$typeнеобязательно LOG_ERR - Константа типа ошибки. Определена в app/Config/core.php.
- null|string|array
$scopeнеобязательно null Область(и), в которой создается сообщение журнала. См. CakeLog::config() для получения дополнительной информации о областях ведения журнала.
Возвращаемое значение
booleanУспех записи в журнал
requestAction()source public
requestAction( string|array $url , array $extra array() )
Вызывает метод контроллера из любого места. Может использоваться для соединения контроллеров или связывания плагинов с основной программой. requestAction может использоваться для возврата рендеренных представлений или получения возвращаемого значения от действий контроллера.
Под капотом этот метод использует Router::reverse() для преобразования параметра $url в строку URL. Вы должны использовать форматы URL, совместимые с Router::reverse()
Передача данных POST и GET
Данные POST и GET могут быть смоделированы в requestAction. Используйте $extra['url'] для данных GET. Параметр $extra['data'] позволяет моделировать данные POST.
Параметры
- строка|массив
$url Строка или массив-основанный URL. В отличие от других массивов URL в CakePHP, этот URL не будет автоматически обрабатывать переданные и именованные аргументы в параметре $url.
- массив
$extraнеобязательно array() Если массив включает ключ "return", он устанавливает AutoRender в значение true. Также может использоваться для отправки данных GET/POST, и именованных/переданных аргументов.
Возвращаемое значение
mixedБулево значение true или false при успехе/неудаче, или содержимое отрендеренного действия, если 'return' установлен в $extra.
toString()source public
toString( )
Преобразование CakeObject в строку. Каждый класс может переопределить этот метод по мере необходимости.
Возвращаемое значение
stringИмя этого класса
Подробности свойств
$Behaviorssource
public BehaviorCollection
Содержит объекты Behavior, в настоящее время привязанные к этой модели.
null
$__backAssociationsource
public массив
Временное хранилище ассоциаций моделей для динамической (от)вязки.
array()
$__safeUpdateModesource
public boolean
Режим безопасного обновления. Если true, это предотвращает Model::save() от генерации запроса с WHERE 1 = 1 при условии гонки.
false
$_associationKeyssource
protected array
Список по умолчанию ключей ассоциации.
array(
'belongsTo' => array('className', 'foreignKey', 'conditions', 'fields', 'order', 'counterCache'),
'hasOne' => array('className', 'foreignKey', 'conditions', 'fields', 'order', 'dependent'),
'hasMany' => array('className', 'foreignKey', 'conditions', 'fields', 'order', 'limit', 'offset', 'dependent', 'exclusive', 'finderQuery', 'counterQuery'),
'hasAndBelongsToMany' => array('className', 'joinTable', 'with', 'foreignKey', 'associationForeignKey', 'conditions', 'fields', 'order', 'limit', 'offset', 'unique', 'finderQuery')
) $_associationssource
protected array
Содержит предоставленные/сгенерированные имена ключей ассоциации и другие данные для всех ассоциаций.
array('belongsTo', 'hasOne', 'hasMany', 'hasAndBelongsToMany') $_eventManagersource
protected CakeEventManager
Экземпляр CakeEventManager, используемый этой моделью для отправки внутренних событий.
null
$_insertIDsource
protected integer
Идентификатор записи модели, которая была последней вставлена.
null
$_sourceConfiguredsource
protected boolean
Настроен ли источник данных.
См.
Model::getDataSourcefalse
$actsAssource
public array
Список поведений для загрузки при инициализации объекта модели. Параметры могут быть переданы поведениям с помощью имени поведения в качестве индекса.
Например:
public $actsAs = array(
'Translate',
'MyBehavior' => array('setting1' => 'value1')
); Ссылка
https://book.cakephp.org/2.0/ru/models/behaviors.html#using-behaviorsnull
$belongsTosource
public array
Подробный список ассоциаций belongsTo.
Основное использование
public $belongsTo = array('Group', 'Department');
Подробная настройка
public $belongsTo = array(
'Group',
'Department' => array(
'className' => 'Department',
'foreignKey' => 'department_id'
)
); Возможные ключи в ассоциации
-
className: имя класса модели, связанной с текущей моделью. Если вы определяете отношение 'Профиль принадлежит Пользователю', ключ className должен быть равен 'Пользователь'. -
foreignKey: имя внешнего ключа, найденного в текущей модели. Это особенно полезно, если вам необходимо определить несколько отношений belongsTo. Значение по умолчанию для этого ключа — это подчеркнутое, единственное имя другой модели, с добавленным суффиксом '_id'. -
conditions: фрагмент SQL, используемый для фильтрации записей связанной модели. Рекомендуется использовать имена моделей в фрагментах SQL: 'Пользователь.активный = 1' всегда лучше, чем просто 'активный = 1'. -
type: тип соединения для использования в запросе SQL, по умолчанию LEFT, но возможно, не подходит для всех ситуаций; INNER может быть полезен, когда вы хотите получить все из ваших основных и связанных моделей или ничего (эффективно, когда используется с некоторыми условиями, конечно). -
fields: список полей, которые необходимо получить при извлечении данных связанной модели. По умолчанию возвращает все поля. -
order: фрагмент SQL, определяющий порядок сортировки возвращенных связанных строк. -
counterCache: Если установлено в true, связанная модель автоматически увеличивает или уменьшает поле "[имя_модели_в_единственном_числе]_count" в внешней таблице всякий раз, когда вы выполняете save() или delete(). Если это строка, то это имя поля, которое следует использовать. Значение в поле счётчика представляет количество связанных строк. -
counterScope: необязательный массив условий для обновления счётчика.
Ссылка
https://book.cakephp.org/2.0/ru/models/associations-linking-models-together.html#belongstoarray()
$cacheQueriessource
public boolean
Будет ли кэшироваться запросы для этой модели. Это позволяет кэшировать только в памяти, результаты не хранятся за пределами текущего запроса.
Ссылка
https://book.cakephp.org/2.0/ru/models/model-attributes.html#cachequeriesfalse
$datasource
public array
Контейнер для данных, которые эта модель получает из постоянного хранилища (обычно, базы данных).
Ссылка
https://book.cakephp.org/2.0/ru/models/model-attributes.html#dataarray()
$displayFieldsource
public string
Название пользовательского поля отображения. Поля отображения используются Scaffold, в элементах OPTION выпадающих списков.
Это поле также используется в find('list') при вызове без дополнительных параметров в списке полей
Ссылка
https://book.cakephp.org/2.0/ru/models/model-attributes.html#displayfieldnull
$findMethodssource
public array
Список допустимых параметров метода поиска, переданных в качестве первого параметра в find().
array(
'all' => true, 'first' => true, 'count' => true,
'neighbors' => true, 'list' => true, 'threaded' => true
) $hasAndBelongsToManysource
public array
Подробный список ассоциаций hasAndBelongsToMany.
Базовое использование
public $hasAndBelongsToMany = array('Role', 'Address');
Подробная конфигурация
public $hasAndBelongsToMany = array(
'Role',
'Address' => array(
'className' => 'Address',
'foreignKey' => 'user_id',
'associationForeignKey' => 'address_id',
'joinTable' => 'addresses_users'
)
); Возможные ключи в ассоциации
-
className: имя класса модели, связанной с текущей моделью. Если вы определяете отношение «Рецепт HABTM Тег», ключ className должен быть равен 'Тег'. -
joinTable: Имя таблицы соединения, используемой в этой ассоциации (если текущая таблица не соответствует соглашениям об именовании таблиц HABTM). -
with: Определяет имя модели для таблицы соединения. По умолчанию CakePHP автоматически создаст модель для вас. В приведенном выше примере она будет называться RecipesTag. С помощью этого ключа вы можете переопределить это имя по умолчанию. Модель таблицы соединения можно использовать, как и любую «обычную» модель, для прямого доступа к таблице соединения. -
foreignKey: имя внешнего ключа, найденного в текущей модели. Это особенно полезно, если вам нужно определить несколько отношений HABTM. Значение по умолчанию для этого ключа — подчеркнутое, единственное имя текущей модели, завершенное символом «_id». -
associationForeignKey: имя внешнего ключа, найденного в другой модели. Это особенно полезно, если вам нужно определить несколько отношений HABTM. Значение по умолчанию для этого ключа — подчеркнутое, единственное имя другой модели, завершенное символом «_id». -
unique: Если true (значение по умолчанию), Cake сначала удалит существующие записи отношений в таблице внешних ключей перед вставкой новых, при обновлении записи. Таким образом, при обновлении необходимо снова передавать существующие ассоциации. Чтобы предотвратить удаление существующих записей отношений, установите этот ключ в строку 'keepExisting'. -
conditions: фрагмент SQL, используемый для фильтрации записей связанной модели. Хорошей практикой является использование имен моделей в фрагментах SQL: «Comment.status = 1» всегда лучше, чем просто «status = 1». -
fields: список полей, которые должны быть получены при извлечении данных связанной модели. По умолчанию возвращает все поля. -
order: фрагмент SQL, определяющий порядок сортировки возвращаемых связанных строк. -
limit: максимальное количество связанных строк, которые вы хотите получить. -
offset: количество связанных строк, которые необходимо пропустить (при заданных текущих условиях и порядке), прежде чем извлекать и связывать. -
finderQuery, полная SQL-запрос, который CakePHP может использовать для извлечения записей связанной модели. Это следует использовать в ситуациях, требующих очень настраиваемых результатов.
Ссылка
https://book.cakephp.org/2.0/ru/models/associations-linking-models-together.html#hasandbelongstomany-habtmarray()
$hasManysource
public array
Подробный список ассоциаций hasMany.
Базовое использование
public $hasMany = array('Comment', 'Task');
Подробная конфигурация
public $hasMany = array(
'Comment',
'Task' => array(
'className' => 'Task',
'foreignKey' => 'user_id'
)
); Возможные ключи в ассоциации
-
className: имя класса модели, связанной с текущей моделью. Если вы определяете отношение «Пользователь имеет много Комментариев», ключ className должен быть равен 'Комментарий'. -
foreignKey: имя внешнего ключа, найденного в другой модели. Это особенно полезно, если вам нужно определить несколько отношений hasMany. Значение по умолчанию для этого ключа — подчеркнутое, единственное имя фактической модели, завершенное символом «_id». -
foreignKey: фрагмент SQL, используемый для фильтрации записей связанной модели. Хорошей практикой является использование имен моделей в фрагментах SQL: «Comment.status = 1» всегда лучше, чем просто «status = 1». -
fields: список полей, которые должны быть получены при извлечении данных связанной модели. По умолчанию возвращает все поля. -
order: фрагмент SQL, определяющий порядок сортировки возвращаемых связанных строк. -
limit: максимальное количество связанных строк, которые вы хотите получить. -
offset: количество связанных строк, которые необходимо пропустить (при заданных текущих условиях и порядке), прежде чем извлекать и связывать. -
dependent: Когда dependent установлено в true, рекурсивное удаление моделей возможно. В этом примере записи Comment будут удалены, когда связанная запись User будет удалена. -
exclusive: Когда exclusive установлено в true, рекурсивное удаление модели выполняет вызов deleteAll(), а не удаляет каждую сущность по отдельности. Это значительно улучшает производительность, но может быть не идеально во всех ситуациях. -
finderQuery: полная SQL-запрос, который CakePHP может использовать для извлечения записей связанной модели. Это следует использовать в ситуациях, требующих очень настраиваемых результатов.
Ссылка
https://book.cakephp.org/2.0/ru/models/associations-linking-models-together.html#hasmanyarray()
$hasOnesource
public array
Подробный список ассоциаций hasOne.
Базовое использование
public $hasOne = array('Profile', 'Address');
Подробная конфигурация
public $hasOne = array(
'Profile',
'Address' => array(
'className' => 'Address',
'foreignKey' => 'user_id'
)
); Возможные ключи в ассоциации
-
className: имя класса модели, связанной с текущей моделью. Если вы определяете отношение «Пользователь имеет один Профиль», ключ className должен быть равен 'Профиль'. -
foreignKey: имя внешнего ключа, найденного в другой модели. Это особенно полезно, если вам нужно определить несколько отношений hasOne. Значение по умолчанию для этого ключа — подчеркнутое, единственное имя текущей модели, завершенное символом «_id». В приведенном выше примере значение по умолчанию будет 'user_id'. -
conditions: фрагмент SQL, используемый для фильтрации записей связанной модели. Хорошей практикой является использование имен моделей в фрагментах SQL: «Profile.approved = 1» всегда лучше, чем просто «approved = 1». -
fields: список полей, которые должны быть получены при извлечении данных связанной модели. По умолчанию возвращает все поля. -
order: фрагмент SQL, определяющий порядок сортировки возвращаемых связанных строк. -
dependent: Когда ключ dependent установлен в true, и метод delete() модели вызывается с параметром cascade, установленным в true, связанные записи модели также удаляются. В данном случае мы устанавливаем его в true, чтобы при удалении пользователя также удалялся её связанный Профиль.
Ссылка
https://book.cakephp.org/2.0/ru/models/associations-linking-models-together.html#hasonearray()
$idsource
public mixed
Значение первичного ключа ID записи, на которую в данный момент указывает эта модель. Автоматически устанавливается после вставки в базу данных.
false
$namesource
public string
Имя модели.
Ссылка
https://book.cakephp.org/2.0/ru/models/model-attributes.html#namenull
$ordersource
public string
Имя столбца(ов) и направление(ий) для сортировки результатов find по умолчанию.
public $order = "Post.created DESC"; public $order = array("Post.view_count DESC", "Post.rating DESC");
Ссылка
https://book.cakephp.org/2.0/ru/models/model-attributes.html#ordernull
$primaryKeysource
public string
Имя поля первичного ключа для этой модели.
Ссылка
https://book.cakephp.org/2.0/ru/models/model-attributes.html#primarykeynull
$recursivesource
public integer
Количество ассоциаций, которые нужно пройти во время вызовов find. По умолчанию извлекает только первый уровень.
Ссылка
https://book.cakephp.org/2.0/ru/models/model-attributes.html#recursive1
$schemaNamesource
public string
Хранит физическое имя схемы/базы данных для этой модели. Автоматически устанавливается при создании модели.
null
$tablePrefixsource
public string
Префикс имени таблицы базы данных для таблиц в модели.
Ссылка
https://book.cakephp.org/2.0/ru/models/model-attributes.html#tableprefixnull
$tableToModelsource
public array
Список имён таблиц, включенных в описание модели. Используется для ассоциаций.
array()
$useConsistentAfterFindsource
public boolean
Если true, afterFind будет получать согласованно отформатированные $results в случае, если $primary false. Формат будет следующим.
$results = array(
0 => array(
'ModelName' => array(
'field1' => 'value1',
'field2' => 'value2'
)
)
); true
$useDbConfigsource
public string
Имя подключения к источнику данных DataSource, используемое этой моделью.
Значение должно быть именем атрибута, которое вы определили в app/Config/database.php или создали с помощью ConnectionManager::create().
Ссылка
https://book.cakephp.org/2.0/ru/models/model-attributes.html#usedbconfig'default'
$useTablesource
public string
Настраиваемое имя таблицы базы данных или null/false, если ассоциация с таблицей не требуется.
Ссылка
https://book.cakephp.org/2.0/ru/models/model-attributes.html#usetablenull
$validatesource
public array
Список правил валидации. Это массив, где имя поля является ключом, а значением является один из следующих вариантов
Валидация с использованием регулярных выражений
public $validate = array(
'name' => '/^[a-z].+$/i'
); Валидация с использованием методов (без параметров)
public $validate = array(
'name' => 'notBlank'
); Валидация с использованием методов (с параметрами)
public $validate = array(
'length' => array(
'rule' => array('lengthBetween', 5, 25)
)
); Валидация с использованием пользовательского метода
public $validate = array(
'password' => array(
'rule' => array('customValidation')
)
);
public function customValidation($data) {
// $data will contain array('password' => 'value')
if (isset($this->data[$this->alias]['password2'])) {
return $this->data[$this->alias]['password2'] === current($data);
}
return true;
} Валидации с сообщениями
Эти сообщения будут использованы в Model::$validationErrors и могут быть использованы в FormHelper
public $validate = array(
'length' => array(
'rule' => array('lengthBetween', 5, 15),
'message' => array('Between %d to %d characters')
)
); Многократные валидации одного поля
public $validate = array(
'login' => array(
array(
'rule' => 'alphaNumeric',
'message' => 'Only alphabets and numbers allowed',
'last' => true
),
array(
'rule' => array('minLength', 8),
'message' => array('Minimum length of %d characters')
)
)
); Допустимые ключи в валидациях
-
rule: Строка с именем метода, регулярное выражение (начинается с косой черты) или массив с методом и параметрами -
message: Строка с сообщением или массив, если есть несколько параметров. См. http://php.net/sprintf -
last: Булево значение, указывающее на продолжение проверки других правил, если текущее правило не выполнено [По умолчанию: true] -
required: Булево значение, указывающее на необходимость наличия поля при сохранении -
allowEmpty: Булево значение, указывающее на то, что поле может быть пустым -
on: Возможные значения:update,create. Указывают на применение правила только при обновлении или создании
Ссылка
https://book.cakephp.org/2.0/ru/models/model-attributes.html#validatehttps://book.cakephp.org/2.0/ru/models/data-validation.html
array()
$validationDomainsource
public string
Имя домена строки валидации, используемой при переводе ошибок валидации.
null
$virtualFieldssource
public array
Массив виртуальных полей, имеющихся в этой модели. Виртуальные поля — это псевдонимы выражений SQL. Поля, добавленные в этот свойство, будут читаться как другие поля в модели, но не будут сохраняемыми.
public $virtualFields = array('two' => '1 + 1');
Простой пример настройки virtualFields
Ссылка
https://book.cakephp.org/2.0/ru/models/model-attributes.html#virtualfieldsarray()
© 2005–2017 The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/2.10/class-Model.html