Класс Model
Объектно-реляционный маппер.
Объектная модель данных, поддерживающая DBO. Автоматически выбирает имя таблицы базы данных на основе множественного числа и нижнего регистра имени класса объекта (например, класс 'User' => таблица 'users'; класс 'Man' => таблица 'men'). Таблица должна иметь первичный ключ по крайней мере с 'id auto_increment'.
- Объект
-
Model реализует CakeEventListener
Непосредственные подклассы
Косвенные подклассы
Ссылка: http://book.cakephp.org/2.0/en/models.html
Авторские права: Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
Лицензия: MIT License
Расположение: Cake/Model/Model.php
Краткое описание свойств
- Содержит объекты поведения, в настоящее время привязанные к этой модели.
$Behaviorspublic -
$__backAssociationpublicВременно хранит ассоциации модели, чтобы обеспечить динамическую привязку (отвязку).array - Связь, поддерживающая обратное containment
array -
$__backInnerAssociationpublicОбратная внутренняя ассоциацияarray -
$__backOriginalAssociationpublicОбратная исходная ассоциацияarray -
$__safeUpdateModepublicbooleanРежим безопасного обновления. Если true, это предотвращает Model::save() от генерации запроса с WHERE 1 = 1 при возникновении конкурентной ситуации.
-
$_associationKeysprotectedСписок по умолчанию ключей ассоциации.array -
$_associationsprotectedХранит предоставленные/сгенерированные имена ключей ассоциации и другие данные для всех ассоциаций.array -
$_eventManagerprotectedЭкземпляр CakeEventManager, используемый этой моделью для отправки внутренних событий.
-
$_insertIDprotectedID записи модели, которая была последней вставлена.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Имя соединения DataSource, которое использует эта модель.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 => keys(type, null, default, key, length, extra)
- 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
Параметры
- string
$method - Имя вызываемого метода.
- array
$params - Параметры для метода.
Возвращает
mixedТо, что возвращает вызываемый метод
__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 обратите внимание на необходимость включения и передачи всех 3 аргументов в parent::__construct($id, $table, $ds);
Динамическое создание моделей
Вы можете динамически создавать экземпляры моделей, используя синтаксис массива $id.
$Post = new Model(array('table' => 'posts', 'name' => 'Post', 'ds' => 'connection2')); Это создаст модель, привязанную к таблице posts в подключении connection2. Динамическое создание моделей полезно, когда вам нужен объект модели без ассоциаций или привязанных поведений.
Параметры
- boolean|integer|string|array
$idoptional false Установите этот идентификатор для этой модели при запуске. Также может быть массивом опций, см. выше.
- string
$tableoptional null - Имя таблицы базы данных для использования.
- string
$dsoptional null - Имя подключения к источнику данных.
Переопределяет
Object::__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. Будет использоваться для удаления кэша запросов.
Возвращает
смешанный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Ссылка
http://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() )
Обрабатывает логику фильтрации до/после для операций 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 - Истина, если это сохранение создало новую запись
- массив
$optionsопционально массив() - Опции, переданные из 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, записи, зависящие от этой записи, также будут удалены
Возвращает
булевоИстина, если операция должна продолжиться, ложь, если она должна быть прервана
Ссылка
http://book.cakephp.org/2.0/ru/models/callback-methods.html#beforedeletebeforeFind()source public
beforeFind( array $query )
Вызывается перед каждой операцией поиска. Возвратите false, если вы хотите прервать вызов find(), в противном случае верните (изменённые) данные запроса.
Параметры
- массив
$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опционально массив() - Опции, переданные из Model::save().
Возвращает
булевоИстина, если операция должна продолжить, ложь, если она должна быть прервана
Ссылка
http://book.cakephp.org/2.0/ru/models/callback-methods.html#beforesaveСм. также
Model::save()beforeValidate()source public
beforeValidate( array $options array() )
Вызывается во время операций проверки на валидность, перед проверкой. Обратите внимание, что пользовательские правила проверки могут быть определены в $validate.
Параметры
- массив
$optionsопционально массив() - Опции, переданные из Model::save().
Возвращает
булевоИстина, если операция проверки должна продолжить, ложь для прерывания
Ссылка
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, 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 и/или значений по умолчанию из базы данных
Ссылка
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 )
Удаляет запись для заданного ID. Если ID не указан, используется текущий ID. Возвращает true при успехе.
Параметры
- целое число|строка
$idнеобязательно null - ID записи для удаления
- boolean
$cascadeнеобязательно true - Установить в true, чтобы удалить записи, зависящие от этой записи
Возвращает
booleanTrue при успехе
Вызывает
Model.beforeDelete $this, array($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 - Псевдоним модели (например: Post)
Возвращает
строкаИмя экранированного поля для этой модели (например, 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, если не найдено.
Ссылка
http://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(). См. документацию по пользовательским типам поиска (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 последней вставленной записи этой моделью.
Возвращает
mixedID последней вставленной записи
getLastInsertID()source public
getLastInsertID( )
Возвращает ID последней вставленной записи этой моделью.
Возвращает
mixedID последней вставленной записи
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 - Имя поля для поиска
Возвращаемое значение
booleanУказывает, существует ли поле в качестве виртуального поля модели.
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-й аргумент предоставлен, флаг булевого типа для включения/выключения кэширования запросов.
Параметры
- строка
$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()
Возвращаемое значение
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необязательно array() - Список полей, которые разрешается сохранить
Возвращаемое значение
смешанноеПри успехе Model::$data, если оно не пустое, или true. В случае неудачи - false
Исключения
ИсключениеPDOException
Триггеры
Model.beforeSave $this, array($options)Model.afterSave $this, array($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 Либо булево значение, либо массив. Если булево, указывает, нужно ли выполнять валидацию перед сохранением. Если массив, позволяет контролировать опции '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() - Опции для использования при сохранении данных записи. См. опции выше.
Возвращаемое значение
смешанный типЕсли атомарно: 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, ассоциация не будет сброшена к значениям, определенным в модели.
Пример: Временно отключаем ассоциацию с Model Support request для облегчения модели User:
$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Методы, унаследованные от Object
_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|строка|массив
$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( )
Преобразование объекта в строку. Каждый класс может переопределить этот метод по мере необходимости.
Возвращает
строкаНазвание этого класса
Подробности свойств
$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 должен равняться 'Пользователь'. -
foreignKey: имя внешнего ключа, найденного в текущей модели. Это особенно полезно, если вам нужно определить несколько отношений belongsTo. Значение по умолчанию для этого ключа — подчеркнутое, единственное имя другой модели, завершенное символом '_id'. -
foreignKey: фрагмент SQL, используемый для фильтрации записей связанной модели. Хорошей практикой является использование имён моделей в фрагментах SQL: 'Пользователь.активный = 1' всегда лучше, чем просто 'активный = 1'. -
type: тип соединения, используемого в запросе SQL, по умолчанию LEFT, что может не подойти во всех ситуациях; INNER может быть полезен, когда вы хотите все из ваших основных и связанных моделей или ничего вообще! (эффективно, когда используется с некоторыми условиями, конечно). (Примечание: значение типа в нижнем регистре — например, 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 в SELECT-боксе.
Это поле также используется в 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 (значение по умолчанию), CakePHP сначала удалит существующие записи отношений в таблице внешних ключей перед вставкой новых при обновлении записи. Таким образом, существующие ассоциации необходимо снова передать при обновлении. Чтобы предотвратить удаление существующих записей отношений, установите этот ключ в строку 'keepExisting'. -
conditions: SQL-фрагмент, используемый для фильтрации записей связанной модели. Рекомендуется использовать имена моделей в SQL-фрагментах: "Комментарий.статус = 1" всегда лучше, чем просто "статус = 1". -
fields: Список полей, которые будут извлечены, когда извлекаются данные связанной модели. По умолчанию возвращает все поля. -
order: SQL-фрагмент, определяющий порядок сортировки возвращаемых связанных строк. -
limit: Максимальное количество связанных строк, которые вы хотите получить. -
offset: Количество связанных строк, которые нужно пропустить (учитывая текущие условия и порядок) перед извлечением и связыванием. -
finderQuery: Полный SQL-запрос, который CakePHP может использовать для извлечения записей связанной модели. Это следует использовать в ситуациях, требующих очень кастомизированных результатов.
Ссылка
http://book.cakephp.org/2.0/en/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'. -
conditions: SQL-фрагмент, используемый для фильтрации записей связанной модели. Рекомендуется использовать имена моделей в SQL-фрагментах: "Комментарий.статус = 1" всегда лучше, чем просто "статус = 1". -
fields: Список полей, которые будут извлекаться при извлечении данных связанной модели. По умолчанию возвращает все поля. -
order: SQL-фрагмент, определяющий порядок сортировки возвращаемых связанных строк. -
limit: Максимальное количество связанных строк, которые вы хотите получить. -
offset: Количество связанных строк, которые нужно пропустить (учитывая текущие условия и порядок) перед извлечением и связыванием. -
dependent: При установке dependent в true, возможно рекурсивное удаление моделей. В этом примере записи Comment будут удалены, когда запись связанного пользователя была удалена. -
exclusive: При установке exclusive в true, рекурсивное удаление модели выполняет вызов deleteAll(), а не удаляет каждый элемент по отдельности. Это значительно улучшает производительность, но может не подойти для всех случаев. -
finderQuery: Полный SQL-запрос, который CakePHP может использовать для извлечения записей связанной модели. Это следует использовать в ситуациях, требующих очень кастомизированных результатов.
Ссылка
http://book.cakephp.org/2.0/en/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-фрагментах: "Профиль.утверждён = 1" всегда лучше, чем просто "утверждён = 1". -
fields: Список полей, которые будут извлекаться при извлечении данных связанной модели. По умолчанию возвращает все поля. -
order: SQL-фрагмент, определяющий порядок сортировки возвращаемых связанных строк. -
dependent: При установке dependent в true и вызове метода delete() модели с параметром cascade, связанные записи модели также будут удалены. В данном случае мы устанавливаем его в true, чтобы при удалении пользователя удалялся и её связанный профиль.
Ссылка
http://book.cakephp.org/2.0/en/models/associations-linking-models-together.html#hasonearray()
$idsource
public mixed
Значение первичного ключа ID записи, на которую в данный момент указывает эта модель. Автоматически устанавливается после вставки в базу данных.
false
$namesource
public string
Имя модели.
Ссылка
http://book.cakephp.org/2.0/en/models/model-attributes.html#namenull
$ordersource
public string
Имя(на) столбца(ов) и направление(ия) сортировки результатов find по умолчанию.
public $order = "Пост.дата_создания DESC"; public $order = array("Пост.количество_просмотров DESC", "Пост.рейтинг DESC");
Ссылка
http://book.cakephp.org/2.0/en/models/model-attributes.html#ordernull
$primaryKeysource
public string
Имя поля первичного ключа для этой модели.
Ссылка
http://book.cakephp.org/2.0/en/models/model-attributes.html#primarykeynull
$recursivesource
public integer
Количество ассоциаций, которые следует проитерировать во время вызовов find. По умолчанию извлекает только первый уровень.
Ссылка
http://book.cakephp.org/2.0/en/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, 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().
Ссылка
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.
http://api.cakephp.org/2.8/class-Model.html