Класс Model
Объектно-реляционный маппер.
Модель данных объектов, поддерживающая DBO. Автоматически выбирает имя таблицы базы данных, основываясь на множественном числе и нижнем регистре имени класса объекта (т.е. класс 'User' => таблица 'users'; класс 'Man' => таблица 'men'). Таблица должна иметь первичный ключ 'id auto_increment'.
- CakeObject
-
Model реализует CakeEventListener
Прямые подклассы
Косвенные подклассы
Ссылка: http://book.cakephp.org/2.0/ru/models.html
Авторские права: Copyright (c) Cake Software Foundation, Inc. (http://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 полей SELECT.string -
$findMethodspublicСписок допустимых опций метода поиска, переданных в качестве первого параметра find().array -
$findQueryTypepublicТип выполняемого запроса find.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, послеFind будет передавать последовательно отформатированные $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Пропускает результаты запроса через методы модели и поведения послеFind().
- _findAll() protectedОбрабатывает логику фильтрации перед/после для операций find('all'). Вызывается только методом Model::find().
- _findCount() protectedОбрабатывает логику фильтрации перед/после для операций find('count'). Вызывается только методом Model::find().
- _findFirst() protectedОбрабатывает логику фильтрации перед/после для операций find('first'). Вызывается только методом Model::find().
- _findList() protectedОбрабатывает логику фильтрации перед/после для операций 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
Сохраняет значение одного поля в базе данных на основе текущего ID модели.
- saveMany() publicСохраняет несколько отдельных записей для одной модели.
- schema() public
Возвращает массив метаданных таблицы (имена и типы столбцов) из базы данных. $field => keys(type, null, default, key, length, extra)
- set() publicЭта функция выполняет две задачи:
- setDataSource() publicУстанавливает источник данных, к которому привязана эта модель.
- setInsertID() publicУстанавливает ID последней записи, которую вставила эта модель.
- 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
Параметры
- string
$method - Имя вызываемого метода.
- array
$params - Параметры метода.
Возвращает
mixedТо, что возвращает вызываемый метод
__construct()source public
__construct( boolean|integer|string|array $id false , string $table null , string $ds null )
Конструктор. Связывает таблицу базы данных модели с объектом.
Если $id является массивом, он может быть использован для передачи нескольких опций в модель.
-
id: ID для начала работы с моделью. -
table: Таблица для использования с этой моделью. -
ds: Имя подключения, к которому подключена эта модель. -
name: Имя модели, например, Post. -
alias: Псевдоним модели, используемый для регистрации экземпляра вClassRegistry. Например,ParentThread
Переопределение метода Model::__construct.
При переопределении Model::__construct() следует учитывать, что все 3 аргумента parent::__construct($id, $table, $ds); должны быть включены и переданы.
Динамическое создание моделей
Вы можете динамически создавать экземпляры моделей, используя синтаксис массива $id.
$Post = new Model(array('table' => 'posts', 'name' => 'Post', 'ds' => 'connection2')); Создаст модель, привязанную к таблице posts в подключении connection2. Динамическое создание моделей полезно, когда вам нужна модель объекта без ассоциаций или присоединенных поведений.
Параметры
- boolean|integer|string|array
$idнеобязательно false Установите этот ID для этой модели при запуске. Также может быть массивом опций, см. выше.
- string
$tableнеобязательно null - Имя таблицы базы данных для использования.
- string
$dsнеобязательно null - Имя подключения к источнику данных.
Переопределяет
CakeObject::__construct() __get()source public
__get( string $name )
Возвращает значение запрошенной переменной, если она может быть установлена с помощью __isset()
Параметры
- string
$name - Запрошенная переменная для получения её значения или ссылки
Возвращает
mixedзначение запрошенной переменной, если она установлена
__isset()source public
__isset( string $name )
Обрабатывает леничную загрузку ассоциаций модели, проверяя массивы ассоциаций на наличие запрошенной переменной.
Параметры
- string
$name - Переменная, проверяемая на существование в классе
Возвращает
booleantrue, если переменная существует (если это не загруженная ассоциация модели, она будет создана), иначе false
_addToWhiteList()source protected
_addToWhiteList( string $key , array $options )
Вспомогательный метод для saveAll() и других методов, для добавления внешнего ключа в список полей.
Параметры
- string
$key - Имя поля, которое нужно добавить в список.
- array
$options - Список опций.
Возвращает
arrayОпции
_clearCache()source protected
_clearCache( string $type null )
Очищает кэш для этой модели.
Параметры
- строка
$typeнеобязательно null Если null, удаляются кэшированные представления, если Cache.check имеет значение true. Будет использоваться для удаления кэша запросов.
Возвращаемое значение
mixedTrue при удалении, 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: Булево значение для управления обновлением кэша счетчиков (если таковые имеются)
Возвращаемое значение
mixedПри успехе Model::$data, если оно не пусто, или true, false при ошибке
Выбрасывает
PDOExceptionСсылка
http://book.cakephp.org/2.0/en/models/saving-your-data.html_filterResults()source protected
_filterResults( array $results , boolean $primary true )
Пропускает результаты запроса через методы моделей и поведения afterFind().
Параметры
- массив
$results - Результаты для фильтрации
- булево
$primaryнеобязательно true - Если это результаты основной модели (результаты из модели, где была выполнена операция поиска)
Возвращаемое значение
массивНабор отфильтрованных результатов
Вызывает
Model.afterFind $this, array($results, $primary)_findAll()source protected
_findAll( string $state , array $query , array $results array() )
Обрабатывает логику фильтрации перед/после для операций find('all'). Вызывается только методом Model::find().
Параметры
- строка
$state - «before» или «after»
- массив
$query - Запрос.
- массив
$resultsнеобязательно array() - Результаты.
Возвращаемое значение
массивСм. также
Model::find()_findCount()source protected
_findCount( string $state , array $query , array $results array() )
Обрабатывает логику фильтрации перед/после для операций find('count'). Вызывается только методом Model::find().
Параметры
- строка
$state - «before» или «after»
- массив
$query - Запрос.
- массив
$resultsнеобязательно array() - Результаты.
Возвращаемое значение
целое числоКоличество найденных записей или false
См. также
Model::find()_findFirst()source protected
_findFirst( string $state , array $query , array $results array() )
Обрабатывает логику фильтрации перед/после для операций find('first'). Вызывается только методом Model::find().
Параметры
- строка
$state - «before» или «after»
- массив
$query - Запрос.
- массив
$resultsнеобязательно array() - Результаты.
Возвращаемое значение
массивСм. также
Model::find()_findList()source protected
_findList( string $state , array $query , array $results array() )
Обрабатывает логику фильтрации перед/после для операций 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( )
Вызывается после каждой операции удаления.
Ссылка
http://book.cakephp.org/2.0/ru/models/callback-methods.html#afterdeleteafterFind()source public
afterFind( mixed $results , boolean $primary false )
Вызывается после каждой операции поиска. Может быть использовано для изменения любых результатов, возвращаемых find(). Значение возврата должно быть (изменёнными) результатами.
Параметры
- смешанные
$results - Результаты операции поиска
- булево
$primaryнеобязательно false - Является ли эта модель запрошенной напрямую (или запрошенной как ассоциация)
Возвращает
смешанныеРезультат операции поиска
Ссылка
http://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().
Ссылка
http://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, если её следует прервать
Ссылка
http://book.cakephp.org/2.0/ru/models/callback-methods.html#beforedeletebeforeFind()source public
beforeFind( array $query )
Вызывается перед каждой операцией поиска. Верните false, если хотите прервать вызов поиска, в противном случае верните (изменённые) данные запроса.
Параметры
- массив
$query - Данные, используемые для выполнения этого запроса, т.е. условия, порядок и т.д.
Возвращает
смешанныеtrue, если операция должна продолжить, false, если её следует прервать; или, изменённые $query для продолжения с новым $query
Ссылка
http://book.cakephp.org/2.0/ru/models/callback-methods.html#beforefindbeforeSave()source public
beforeSave( array $options array() )
Вызывается перед каждой операцией сохранения, после валидации. Верните результат, отличный от true, чтобы остановить сохранение.
Параметры
- массив
$optionsнеобязательно array() - Опции, переданные из Model::save().
Возвращает
булевоTrue, если операция должна продолжить, false, если её следует прервать
Ссылка
http://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 для прерывания
Ссылка
http://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, чтобы сделать связь постоянной
Возвращает
булевоУспех
Ссылка
http://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, массив($query)См. также
Model::find()clear()source public
clear( )
Эта функция — удобный оберточный класс для создания (false) и, как следует из названия, очищает идентификатор, данные и ошибки валидации.
Возвращает
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 и/или значений по умолчанию из базы данных
Ссылка
http://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 )
Удаляет запись для заданного идентификатора. Если идентификатор не указан, используется текущий идентификатор. Возвращает true при успехе.
Параметры
- целое число|строка
$idнеобязательно null - Идентификатор записи для удаления
- boolean
$cascadeнеобязательно true - Установите в значение true, чтобы удалить записи, зависящие от этой записи
Возвращает
booleanTrue при успехе
Триггеры
Model.beforeDelete $this, массив($cascade)Model.afterDelete $this
Ссылка
http://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 при ошибке
Ссылка
http://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 не передан, вызывается Model::getID(), чтобы получить текущий идентификатор записи, а затем выполняется Model::find('count') на текущем источнике данных для определения существования записи в постоянном хранилище.
Параметры
- целое число|строка
$idнеобязательно null - Идентификатор записи, существование которой нужно проверить
Возвращает
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, если не найдено.
Ссылка
http://book.cakephp.org/2.0/ru/models/retrieving-your-data.html#model-fieldfind()source public
find( string $type 'first' , array $query array() )
Запрашивает у источника данных и возвращает массив набора результатов.
Используется для выполнения операций поиска, где первый аргумент — тип операции поиска (все / первый / счёт / соседи / список / нити), второй параметр — параметры для поиска (индексированный массив, включая: 'условия', 'лимит', 'рекурсивный', 'страница', 'поля', 'смещение', 'порядок', 'обратные вызовы')
Например:
$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(). См. документацию по пользовательским типам поиска (http://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 при ошибке.
Ссылка
http://book.cakephp.org/2.0/ru/models/retrieving-your-data.htmlgetAffectedRows()source public
getAffectedRows( )
Возвращает количество строк, затронутых последним запросом.
Возвращает
integerКоличество строк
getAssociated()source public
getAssociated( string $type null )
Получает все модели, с которыми связана данная модель.
Параметры
- string
$typeнеобязательно 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
$listнеобязательно 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
$fieldнеобязательно null - Имя поля для поиска
Возвращает
mixedЕсли $field - строковое выражение, связанное с виртуальным полем $field. Если $field равен null, возвращает массив всех виртуальных полей модели или false, если ни одного поля не существует.
hasAny()source public
hasAny( array $conditions null )
Возвращает true, если существует запись, удовлетворяющая заданным условиям.
Параметры
- array
$conditionsнеобязательно null - Массив SQL-условий
Возвращает
booleanTrue, если такая запись существует
hasField()source public
hasField( string|array $name , boolean $checkVirtual false )
Возвращает true, если указанное поле существует в таблице базы данных модели.
Параметры
- string|array
$name - Имя поля для поиска или массив имён
- boolean
$checkVirtualнеобязательно 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
$optionsнеобязательно array() - Необязательный массив пользовательских опций, которые должны быть доступны в обратном вызове beforeValidate.
Возвращает
arrayМассив невалидных полей и сообщений об ошибках
См. также
Model::validates()invalidate()source public
invalidate( string $field , mixed $value true )
Помечает поле как невалидное, необязательно задавая имя правила валидации (в случае множественной валидации для поля), которое было нарушено.
Параметры
- string
$field - Имя поля, которое нужно сделать невалидным
- mixed
$valueнеобязательно 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
$orнеобязательно true - Если false, все указанные поля должны совпадать, чтобы вернуть false
Возвращает
booleanFalse, если найдены какие-либо записи, соответствующие любым полям
isVirtualField()source public
isVirtualField( string $field )
Возвращает true, если указанное поле является виртуальным полем модели.
Параметры
- строка
$field - Имя поля для поиска
Возвращаемое значение
булево значениеуказывающее, существует ли поле в качестве виртуального поля модели.
joinModel()source public
joinModel( string|array $assoc , array $keys array() )
Получает имя и поля, которые будут использоваться моделью соединения. Это позволяет задавать поля соединения в определении ассоциации.
Параметры
- строка или массив
$assoc - Модель, которая должна быть подключена
- массив
$keysнеобязательно array() - Любые ключи соединения, которые должны быть объединены с запрошенными ключами
Возвращаемое значение
массивonError()source public
onError( )
Вызывается при возникновении ошибки на уровне источника данных.
Ссылка
http://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-запрос
Возвращаемое значение
смешанноеМассив результатов или булево значение, указывающее успех/неуспех в зависимости от выполненного запроса
Ссылка
http://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, если не найдено
Ссылка
http://book.cakephp.org/2.0/ru/models/retrieving-your-data.html#model-readresetAssociations()source public
resetAssociations( )
Сбрасывает массивы ассоциаций модели до первоначальных, определённых в модели. Обычно вызывается в конце каждого вызова Model::find()
Возвращаемое значение
булево значениеУспех
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необязательно array() - Список полей, которые разрешено сохранять
Возвращаемое значение
смешанноеПри успехе Model::$data, если оно не пустое, или true, false при неудаче
Исключения
ИсключениеPDOException
Триггеры
Model.beforeSave $this, массив($options)Model.afterSave $this, массив($created, $options)
Ссылка
http://book.cakephp.org/2.0/ru/models/saving-your-data.htmlsaveAll()source public
saveAll( array $data array() , array $options array() )
Метод, совместимый со старыми версиями, для перенаправления вызовов: saveMany(), validateMany(), saveAssociated() и validateAssociated()
Сохраняет несколько отдельных записей для одной модели; Также работает с одной записью, а также со всеми её связанными записями.
Опции
-
validate: Устанавливается в false для отключения валидации, true для валидации каждой записи перед сохранением, 'first' для валидации всех записей перед сохранением любой (по умолчанию), или 'only' для валидации только записей, но не сохранения их. -
atomic: Если true (по умолчанию), попытается сохранить все записи в одной транзакции. Должно быть установлено в false, если база данных/таблица не поддерживает транзакции. -
fieldList: Эквивалентно параметру $fieldList в Model::save(). Он должен быть ассоциативным массивом с именем модели в качестве ключа и массивом полей в качестве значения. Например:array( 'SomeModel' => array('field'), 'AssociatedModel' => array('field', 'otherfield') ) -
deep: См. saveMany/saveAssociated -
callbacks: См. Model::save() -
counterCache: См. Model::save()
Параметры
- массив
$dataнеобязательно array() Данные записи для сохранения. Это может быть либо массив с числовыми индексами (для сохранения нескольких записей одного типа), либо массив, индексированный именем ассоциации.
- массив
$optionsнеобязательно array() - Опции для использования при сохранении данных записи, см. $options выше.
Возвращаемое значение
смешанноеЕсли атомарно: True при успехе, или false при неудаче. В противном случае: массив, похожий на массив $data, переданный, но значения установлены в true/false в зависимости от того, успешно ли была сохранена каждая запись.
Ссылка
http://book.cakephp.org/2.0/ru/models/saving-your-data.html#model-saveassociated-array-data-null-array-options-arrayhttp://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() )
Сохраняет одну запись, а также все её непосредственно связанные записи.
Опции
-
validate: Устанавливается вfalseдля отключения валидации,trueдля валидации каждой записи перед сохранением, 'first' для валидации всех записей перед сохранением любой (по умолчанию), -
atomic: Если true (по умолчанию), попытается сохранить все записи в одной транзакции. Должно быть установлено в false, если база данных/таблица не поддерживает транзакции. -
fieldList: Эквивалентно параметру $fieldList в Model::save(). Он должен быть ассоциативным массивом с именем модели в качестве ключа и массивом полей в качестве значения. Например:array( 'SomeModel' => array('field'), 'AssociatedModel' => array('field', 'otherfield') ) -
deep: Если установлено в true, сохраняются не только непосредственно связанные данные, но и вложенные связанные данные. -
callbacks: См. Model::save() -
counterCache: См. Model::save()
Параметры
- массив
$dataнеобязательно null - Данные записи для сохранения. Это должен быть массив, индексированный именем ассоциации.
- массив
$optionsнеобязательно array() - Опции для использования при сохранении данных записи, см. $options выше.
Возвращаемое значение
смешанноеЕсли атомарно: True при успехе, или false при неудаче. В противном случае: массив, похожий на массив $data, переданный, но значения установлены в true/false в зависимости от того, успешно ли была сохранена каждая запись.
Исключения
PDOExceptionСсылка
http://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 - Значение поля
- boolean|массив
$validateнеобязательно false Либо boolean, либо массив. Если boolean, указывает, нужно ли выполнять валидацию перед сохранением. Если массив, позволяет управлять параметрами 'validate', 'callbacks' и 'counterCache'. Подробнее см. Model::save().
Возвращает
boolean|массивСм. Model::save() Ложь при ошибке или массив данных модели при успехе.
См. также
Model::save()Ссылка
http://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Ссылка
http://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)
Параметры
- boolean|строка
$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.
Ссылка
http://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 - Набор связей для отключения (индексированные по типу связи)
- boolean
$resetнеобязательно true - Установите в false, чтобы сделать отключение постоянным
Возвращает
booleanУспех
Ссылка
http://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 для всех записей
Возвращает
booleanTrue при успехе, false при ошибке
Ссылка
http://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
- boolean
$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() )
Вызывает метод этого объекта с заданными параметрами. Предоставляет ОО-обертку для 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|строка|массив
$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 и именованных/переданных аргументов.
Возвращает
mixedBoolean true или false при успехе/неудаче, или содержимое отрисованного действия, если 'return' установлен в $extra.
toString()source public
toString( )
Преобразование CakeObject в строку. Каждый класс может переопределить этот метод по мере необходимости.
Возвращает
stringИмя этого класса
Подробности свойств
$Behaviorssource
public BehaviorCollection
Содержит объекты поведения, которые в настоящее время связаны с этой моделью.
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')
); Ссылка
http://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 должен быть равен «Пользователь». -
conditions: фрагмент SQL, используемый для фильтрации записей связанной модели. Рекомендуется использовать имена моделей в фрагментах SQL: «User.active = 1» всегда лучше, чем просто «active = 1». -
foreignKey: имя внешнего ключа, найденного в текущей модели. Это особенно полезно, если вам нужно определить несколько отношений belongsTo. Значение по умолчанию для этого ключа — подчеркнутое, единственное имя другой модели, добавленное с суффиксом «_id». -
type: тип соединения, используемого в запросе SQL, по умолчанию LEFT, который может не подойти во всех ситуациях; INNER может быть полезен, когда вам нужны все данные из основной и связанных моделей или ничего (эффективно, когда используется с условиями, конечно). -
fields: список полей, которые нужно получить, когда извлекаются данные связанной модели. По умолчанию возвращает все поля. -
order: фрагмент SQL, который определяет порядок сортировки возвращенных связанных строк. -
counterCache: если установлено в true, связанная модель автоматически увеличивает или уменьшает поле "[имя_модели]_count" во внешней таблице всякий раз, когда вы выполняете save() или delete(). Если это строка, то это имя поля для использования. Значение в поле счетчика представляет количество связанных строк. -
counterScope: необязательный массив условий, используемый для обновления поля счетчика.
Ссылка
http://book.cakephp.org/2.0/ru/models/associations-linking-models-together.html#belongstoarray()
$cacheQueriessource
public boolean
Выполнять кэширование запросов для этой модели. Это включает кэширование только в оперативной памяти, результаты не сохраняются после текущего запроса.
Ссылка
http://book.cakephp.org/2.0/ru/models/model-attributes.html#cachequeriesfalse
$datasource
public array
Контейнер для данных, которые эта модель получает из постоянного хранения (обычно, базы данных).
Ссылка
http://book.cakephp.org/2.0/ru/models/model-attributes.html#dataarray()
$displayFieldsource
public string
Настраиваемое имя поля отображения. Поля отображения используются Scaffold, в элементах OPTION выпадающих списков.
Это поле также используется в find('list') при вызове без дополнительных параметров в списке полей
Ссылка
http://book.cakephp.org/2.0/ru/models/model-attributes.html#displayfieldnull
$findMethodssource
public array
Список допустимых параметров метода find, передаваемых в качестве первого параметра в 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 может использовать для извлечения записей связанной модели. Это следует использовать в ситуациях, требующих очень индивидуальных результатов.
Ссылка
http://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: имя класса модели, которая связана с текущей моделью. Если вы определяете отношение «Пользователь hasMany Комментарий», ключ className должен быть равен 'Комментарий'. -
foreignKey: имя внешнего ключа, найденного в другой модели. Это особенно полезно, если вам нужно определить несколько отношений hasMany. Значение по умолчанию для этого ключа — подчеркнутое, единственное имя фактической модели, завершенное '_id'. -
conditions: SQL фрагмент, используемый для фильтрации записей связанной модели. Хорошей практикой является использование имён моделей в SQL фрагментах: "Comment.status = 1" всегда лучше, чем просто "status = 1". -
fields: Список полей, которые будут извлечены при извлечении данных связанной модели. По умолчанию возвращаются все поля. -
order: SQL фрагмент, определяющий порядок сортировки для возвращаемых связанных строк. -
limit: Максимальное количество связанных строк, которое вы хотите получить. -
offset: Количество связанных строк, которые нужно пропустить (учитывая текущие условия и порядок), прежде чем извлечь и связать. -
dependent: Когда зависимость (dependent) установлена в true, возможен рекурсивный удаление модели. В этом примере записи Comment будут удалены, когда связанная запись User будет удалена. -
exclusive: Когда исключение (exclusive) установлено в true, рекурсивное удаление модели выполняет вызов deleteAll(), а не удаление каждого объекта отдельно. Это значительно улучшает производительность, но может быть не оптимальным для всех ситуаций. -
finderQuery: Полный SQL запрос, который CakePHP может использовать для извлечения записей связанной модели. Это следует использовать в ситуациях, требующих очень индивидуальных результатов.
Ссылка
http://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: имя класса модели, которая связана с текущей моделью. Если вы определяете отношение «Пользователь hasOne Профиль», ключ className должен быть равен 'Профиль'. -
foreignKey: имя внешнего ключа, найденного в другой модели. Это особенно полезно, если вам нужно определить несколько отношений hasOne. Значение по умолчанию для этого ключа — подчеркнутое, единственное имя текущей модели, завершенное '_id'. В примере выше, оно будет по умолчанию 'user_id'. -
conditions: SQL фрагмент, используемый для фильтрации записей связанной модели. Хорошей практикой является использование имён моделей в SQL фрагментах: "Profile.approved = 1" всегда лучше, чем просто "approved = 1". -
fields: Список полей, которые будут извлечены при извлечении данных связанной модели. По умолчанию возвращаются все поля. -
order: SQL фрагмент, определяющий порядок сортировки для возвращаемых связанных строк. -
dependent: Когда ключ зависимость (dependent) установлен в true, и метод удаления модели delete() вызывается с параметром каскада (cascade) установленным в true, записи связанной модели также удаляются. В этом случае мы устанавливаем его в true, чтобы при удалении пользователя также удалялся его связанный профиль.
Ссылка
http://book.cakephp.org/2.0/ru/models/associations-linking-models-together.html#hasonearray()
$idsource
public mixed
Значение первичного ключа ID записи, на которую в данный момент указывает эта модель. Автоматически устанавливается после вставки в базу данных.
false
$namesource
public string
Имя модели.
Ссылка
http://book.cakephp.org/2.0/ru/models/model-attributes.html#namenull
$ordersource
public string
Имя(на) столбца(ов) и направление(ия) сортировки результатов поиска по умолчанию.
public $order = "Post.created DESC"; public $order = array("Post.view_count DESC", "Post.rating DESC");
Ссылка
http://book.cakephp.org/2.0/ru/models/model-attributes.html#ordernull
$primaryKeysource
public string
Имя поля первичного ключа для этой модели.
Ссылка
http://book.cakephp.org/2.0/ru/models/model-attributes.html#primarykeynull
$recursivesource
public integer
Количество ассоциаций, через которые необходимо пройти при вызове find. По умолчанию извлекается только первый уровень.
Ссылка
http://book.cakephp.org/2.0/ru/models/model-attributes.html#recursive1
$schemaNamesource
public string
Содержит физическое имя схемы/базы данных для этой модели. Автоматически устанавливается во время создания модели.
null
$tablePrefixsource
public string
Префикс имени таблицы базы данных для таблиц в модели.
Ссылка
http://book.cakephp.org/2.0/ru/models/model-attributes.html#tableprefixnull
$tableToModelsource
public array
Список имён таблиц, включенных в описание модели. Используется для ассоциаций.
array()
$useConsistentAfterFindsource
public boolean
Если true, послеFind получит согласованно отформатированные $results в случае, если $primary равно false. Формат будет таким:
$results = array(
0 => array(
'ModelName' => array(
'field1' => 'value1',
'field2' => 'value2'
)
)
); true
$useDbConfigsource
public string
Имя подключения к источнику данных DataSource, используемое этой моделью
Значение должно быть именем атрибута, которое вы определили в app/Config/database.php или создали с помощью ConnectionManager::create().
Ссылка
http://book.cakephp.org/2.0/ru/models/model-attributes.html#usedbconfig'default'
$useTablesource
public string
Пользовательское имя таблицы базы данных или null/false, если ассоциация с таблицей нежелательна.
Ссылка
http://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. Указывают, применять ли это правило только при обновлении или создании
Ссылка
http://book.cakephp.org/2.0/ru/models/model-attributes.html#validatehttp://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
Ссылка
http://book.cakephp.org/2.0/ru/models/model-attributes.html#virtualfieldsarray()
© 2005–2016 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.9/class-Model.html