Класс AppModel
Модель приложения для Cake.
Добавьте свои методы, применяемые ко всему приложению, в класс ниже; ваши модели будут их наследовать.
- Объект
-
Модель реализует CakeEventListener -
AppModel
Непосредственные известные подклассы
AcoAction, I18nModel, РазрешениеАвторское право: Авторское право (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
Лицензия: Лицензия MIT
Расположение Model/AppModel.php
Методы, унаследованные от Модель
__callисходный код public
__call( string $method , array $params )
Обрабатывает пользовательские вызовы методов, такие как findBy<поле> для моделей БД и пользовательские вызовы RPC для удалённых источников данных.
Параметры
- string
$method - Имя вызываемого метода.
- массив
$params - Параметры для метода.
Возвращает
mixedЗначение, возвращаемое вызванным методом
__constructисходный код public
__construct( boolean|integer|string|array $id false , string $table null , string $ds null )
Конструктор. Связывает таблицу базы данных модели с объектом.
Если $id является массивом, его можно использовать для передачи нескольких опций в модель.
-
id: Идентификатор для начала работы модели. -
table: Таблица для использования данной моделью. -
ds: Имя подключения к источнику данных, к которому подключена данная модель. -
name: Имя модели (например, Запись). -
alias: Псевдоним модели, используется для регистрации экземпляра вClassRegistry. Например,ParentThread
Переопределение метода Model::__construct
При переопределении Model::__construct() будьте внимательны, чтобы включить и передать все 3 аргумента в parent::__construct($id, $table, $ds);
Динамическое создание моделей
Вы можете динамически создавать экземпляры моделей, используя синтаксис массива $id.
$Post = new Model(array('table' => 'posts', 'name' => 'Post', 'ds' => 'connection2'));
Создаст модель, привязанную к таблице сообщений в соединении connection2. Динамическое создание моделей полезно, когда вам нужен объект модели, не содержащий ассоциаций или прикреплённых поведений.
Параметры
- boolean|integer|string|array
$idнеобязательно false - Установите этот идентификатор для этой модели при запуске, также может быть массивом опций, см. выше.
- строка
$tableнеобязательно null - Имя таблицы базы данных для использования.
- строка
$dsнеобязательно null - Имя подключения к источнику данных.
Переопределяет
Object::__construct() __getисходный код public
__get( string $name )
Возвращает значение запрошенной переменной, если она может быть установлена с помощью __isset()
Параметры
- строка
$name - Запрошенная переменная для получения значения или ссылки
Возвращает
mixedЗначение запрошенной переменной, если она установлена
__issetисходный код public
__isset( string $name )
Обрабатывает леничную загрузку ассоциаций моделей, проверяя массивы ассоциаций на наличие запрошенной переменной
Параметры
- строка
$name - Переменная, проверяемая на существование в классе
Возвращает
booleantrue, если переменная существует (если это не загруженная ассоциация модели, она будет создана), иначе false
_addToWhiteListисходный код protected
_addToWhiteList( string $key , array $options )
Вспомогательный метод для saveAll() и т.п., для добавления внешнего ключа в список полей
Параметры
- строка
$key - Имя поля, которое нужно добавить в список
- массив
$options - Список опций
Возвращает
arrayОпции
_clearCacheисходный код protected
_clearCache( string $type null )
Очищает кэш для этой модели.
Параметры
- строка
$typeнеобязательно null - Если null, удаляются кэшированные представления, если Cache.check равен true. Будет использоваться для удаления кэша запросов также
Возвращает
mixedTrue при удалении, null в противном случае
_collectForeignKeysисходный код protected
_collectForeignKeys( string $type 'belongsTo' )
Сбор внешних ключей из ассоциаций.
Параметры
- строка
$typeнеобязательно 'belongsTo' - Тип ассоциации.
Возвращает
arrayМассив
_constructLinkedModelисходный код 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'); использование: $this->ModelName->modelMethods();
_deleteDependentисходный код protected
_deleteDependent( string $id , boolean $cascade )
Каскадно удаляет записи модели через связанные дочерние записи hasMany и hasOne.
Параметры
- строка
$id - Идентификатор удалённой записи
- boolean
$cascade - Установите в true, чтобы удалить записи, зависящие от этой записи
_deleteLinksисходный код protected
_deleteLinks( string $id )
Каскадно удаляет записи модели через ключи соединения HABTM.
Параметры
- строка
$id - Идентификатор удалённой записи
_doSaveисходный код 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 при ошибке
Возбуждает
PDOExceptionPDOException
Ссылка
http://book.cakephp.org/2.0/en/models/saving-your-data.html_filterResultsисходный код protected
_filterResults( array $results , boolean $primary true )
Пропускает результаты запросов через методы model и behavior послеFind().
Параметры
- массив
$results - Результаты для фильтрации
- boolean
$primaryнеобязательно true - Если это главная модель результатов (результаты из модели, где выполнялась операция поиска)
Возвращает
arrayНабор отфильтрованных результатов
Вызывает
Model.afterFind $this, array($results, $primary)_findAllsource protected
_findAll( string $state , array $query , array $results array() )
Обрабатывает логику фильтрации до/после для операций find('all'). Вызывается только методом Model::find().
Параметры
- строка
$state - Либо "before", либо "after"
- массив
$query - Запрос.
- массив
$resultsнеобязательно array() - Результаты.
Возвращает
arrayмассив
См. также
Model::find()_findCountsource protected
_findCount( string $state , array $query , array $results array() )
Обрабатывает логику фильтрации до/после для операций find('count'). Вызывается только методом Model::find().
Параметры
- строка
$state - Либо "before", либо "after"
- массив
$query - Запрос.
- массив
$resultsнеобязательно array() - Результаты.
Возвращает
integerКоличество найденных записей или false
См. также
Model::find()_findFirstsource protected
_findFirst( string $state , array $query , array $results array() )
Обрабатывает логику фильтрации до/после для операций find('first'). Вызывается только методом Model::find().
Параметры
- строка
$state - Либо "before", либо "after"
- массив
$query - Запрос.
- массив
$resultsнеобязательно array() - Результаты.
Возвращает
arrayмассив
См. также
Model::find()_findListsource protected
_findList( string $state , array $query , array $results array() )
Обрабатывает логику фильтрации до/после для операций find('list'). Вызывается только методом Model::find().
Параметры
- строка
$state - Либо "before", либо "after"
- массив
$query - Запрос.
- массив
$resultsнеобязательно array() - Результаты.
Возвращает
arrayКлючевые/значения пар идентификаторов/полей отображения всех найденных записей
См. также
Model::find()_findNeighborssource protected
_findNeighbors( string $state , array $query , array $results array() )
Определяет предыдущее значение поля, затем использует логику для поиска «охватывающих» строк и возвращает их.
Параметры
- строка
$state - Либо "before", либо "after"
- массив
$query - Запрос.
- массив
$resultsнеобязательно array() - Результаты.
Возвращает
arrayмассив
_findThreadedsource protected
_findThreaded( string $state , array $query , array $results array() )
В случае неоднозначных результатов (несколько результатов верхнего уровня с различными parent_id) результаты верхнего уровня с parent_id, отличными от первого результата, будут отброшены.
Параметры
- строка
$state - Либо "before", либо "after".
- массив
$query - Запрос.
- массив
$resultsнеобязательно array() - Результаты.
Возвращает
arrayРезультаты с ветвлением
_generateAssociationsource protected
_generateAssociation( string $type , string $assocKey )
Создает ассоциацию на основе массива из строки.
Параметры
- строка
$type - 'belongsTo', 'hasOne', 'hasMany', 'hasAndBelongsToMany'
- строка
$assocKey - Ключ ассоциации.
_isUUIDFieldsource protected
_isUUIDField( string $field )
Проверка, является ли переданное поле полем UUID.
Параметры
- строка
$field - поле для проверки
Возвращает
booleanbool
_normalizeXmlDatasource protected
_normalizeXmlData( array $xml )
Нормализует Xml::toArray() для использования в Model::save()
Параметры
- массив
$xml - XML в виде массива
Возвращает
arrayмассив
_prepareUpdateFieldssource protected
_prepareUpdateFields( array $data )
Вспомогательный метод для Model::updateCounterCache(). Проверяет поля, которые будут обновлены, на
Параметры
- массив
$data - Поля записи, которые будут обновлены
Возвращает
arrayВозвращает обновленные значения внешнего ключа вместе с ключом 'old', содержащим старые значения, или пустое значение, если внешние ключи не обновляются.
_readDataSourcesource protected
_readDataSource( string $type , array $query )
Чтение из источника данных
Model::_readDataSource() используется всеми вызовами find() для чтения из источника данных и может быть переопределен для кэширования вызовов источника данных.
protected function _readDataSource($type, $query) { $cacheName = md5(json_encode($query)); $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 - Тип операции поиска (all / first / count / neighbors / list / threaded)
- массив
$query - Поля опций (conditions / fields / joins / limit / offset / order / page / group / callbacks)
Возвращает
arrayмассив
_saveMultisource protected
_saveMulti( array $joined , integer|string $id , DataSource $db )
Сохраняет данные модели hasAndBelongsToMany в базе данных.
Параметры
- массив
$joined - Данные для сохранения
- целое число|строка
$id - Идентификатор записи в этой модели
-
DataSource$db - Экземпляр источника данных.
_setAliasDatasource protected
_setAliasData( array $data )
Перемещение значений в псевдоним
Параметры
- массив
$data - Данные.
Возвращает
arrayмассив
afterDeletesource public
afterDelete( )
Вызывается после каждой операции удаления.
Ссылка
http://book.cakephp.org/2.0/ru/models/callback-methods.html#afterdeleteafterFindsource public
afterFind( mixed $results , boolean $primary false )
Вызывается после каждой операции поиска. Может быть использована для модификации возвращаемых результатами find(). Значение возврата должно быть (изменёнными) результатами.
Параметры
- смешанное
$results - Результаты операции поиска
- булево
$primaryнеобязательно false - Является ли эта модель запрошенной непосредственно (или запрошенной как ассоциация)
Возвращает
mixedРезультат операции поиска
Ссылка
http://book.cakephp.org/2.0/ru/models/callback-methods.html#afterfindafterSavesource public
afterSave( boolean $created , array $options array() )
Вызывается после каждой успешной операции сохранения.
Параметры
- булево
$created - Истина, если это сохранение создало новую запись
- массив
$optionsнеобязательно array() - Опции, переданные из Model::save().
См. также
Model::save()Ссылка
http://book.cakephp.org/2.0/ru/models/callback-methods.html#aftersavebeforeDeletesource public
beforeDelete( boolean $cascade true )
Вызывается перед каждой операцией удаления.
Параметры
- boolean
$cascadeнеобязательно true - Если true, записи, зависящие от этой записи, также будут удалены
Возвращает
booleanTrue, если операция должна быть продолжена, false, если она должна быть прервана
Ссылка
http://book.cakephp.org/2.0/ru/models/callback-methods.html#beforedeletebeforeFindsource public
beforeFind( array $query )
Вызывается перед каждой операцией поиска. Возвратите false, если хотите остановить вызов поиска, в противном случае верните (изменённые) данные запроса.
Параметры
- массив
$query - Данные, используемые для выполнения этого запроса, т.е. условия, порядок и т.д.
Возвращает
mixedtrue, если операция должна быть продолжена, false, если она должна быть прервана; или изменённый $query для продолжения с новым $query
Ссылка
http://book.cakephp.org/2.0/ru/models/callback-methods.html#beforefindbeforeSavesource public
beforeSave( array $options array() )
Вызывается перед каждой операцией сохранения, после валидации. Верните значение, отличное от true, чтобы остановить сохранение.
Параметры
- массив
$optionsнеобязательно массив() - Опции, переданные из Model::save().
Возвращает
booleanTrue, если операция должна быть продолжена, false, если она должна быть прервана
См.
Model::save()Ссылка
http://book.cakephp.org/2.0/ru/models/callback-methods.html#beforesavebeforeValidatesource public
beforeValidate( array $options array() )
Вызывается во время операций валидации, перед валидацией. Обратите внимание, что пользовательские правила валидации могут быть определены в $validate.
Параметры
- массив
$optionsнеобязательно массив() - Опции, переданные из Model::save().
Возвращает
booleanTrue, если операция валидации должна быть продолжена, false для прерывания
См.
Model::save()Ссылка
http://book.cakephp.org/2.0/ru/models/callback-methods.html#beforevalidatebindModelsource public
bindModel( array $params , boolean $reset true )
Связывает ассоциации моделей на лету.
Если $reset равно false, ассоциация не будет сброшена к исходным значениям, определённым в модели
Пример: Добавление новой связи hasOne к модели Profile, которая не определена в исходном коде модели:
$this->User->bindModel(array('hasOne' => array('Profile')));
Связи, которые не сделаны постоянными, будут сброшены при следующем вызове 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-flybuildQuerysource public
buildQuery( string $type 'first' , array $query array() )
Строит массив запроса, используемый источником данных для генерации запроса для получения данных.
Параметры
- строка
$typeнеобязательно 'first' - Тип операции поиска (all / first / count / neighbors / list / threaded)
- массив
$queryнеобязательно массив() - Поля опций (conditions / fields / joins / limit / offset / order / page / group / callbacks)
Возвращает
array|nullМассив запроса или null, если он не может быть создан по каким-либо причинам
См.
Model::find()Триггеры
Model.beforeFind $this, массив($query)clearsource public
clear( )
Эта функция — удобная обертка класса для создания (false) и, как следует из названия, очищает id, данные и ошибки валидации.
Возвращает
booleanВсегда true при успехе
См.
Model::create()createsource public
create( boolean|array $data array() , boolean $filterKey false )
Инициализирует модель для записи новой записи, загружая значения по умолчанию для полей, которые не определены в $data, и очищает предыдущие ошибки валидации. Особенно полезно для сохранения данных в циклах.
Параметры
- boolean|массив
$dataнеобязательно массив() - Необязательный массив данных для присвоения модели после её создания. Если null или false, значения по умолчанию схемы не объединяются.
- boolean
$filterKeyнеобязательно false - Если true, перезаписывает любой входной первичный ключ пустым значением
Возвращает
arrayТекущие данные Model::data после объединения $data и/или значений по умолчанию из базы данных
Ссылка
http://book.cakephp.org/2.0/ru/models/saving-your-data.html#model-create-array-data-arraydeconstructsource public
deconstruct( string $field , array|object $data )
Деконструирует сложный тип данных (массив или объект) в единственное значение поля.
Параметры
- строка
$field - Имя поля, которое нужно деконструировать
- массив|объект
$data - Массив или объект, который нужно деконструировать в поле
Возвращает
mixedРезультирующие данные, которые должны быть назначены полю
deletesource public
delete( integer|string $id null , boolean $cascade true )
Удаляет запись для данного ID. Если ID не указан, используется текущий ID. Возвращает true при успехе.
Параметры
- целое число|строка
$idнеобязательно null - ID записи для удаления
- boolean
$cascadeнеобязательно true - Установите в true, чтобы удалить записи, зависящие от этой записи
Возвращает
booleanTrue при успехе
Ссылка
http://book.cakephp.org/2.0/ru/models/deleting-data.htmlТриггеры
Model.beforeDelete $this, массив($cascade)Model.afterDelete $this
deleteAllsource 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#deleteallescapeFieldsource public
escapeField( string $field null , string $alias null )
Выполняет экранирование имени поля и добавляет имя модели. Экранирование выполняется в соответствии с правилами текущего драйвера базы данных.
Параметры
- строка
$fieldнеобязательный null - Поле для экранирования (например: id)
- строка
$aliasнеобязательный null - Псевдоним модели (например: Post)
Возвращает
stringИмя экранированного поля для этой модели (например, id становится
Post.id).existssource public
exists( integer|string $id null )
Возвращает true, если запись с указанным ID существует.
Если $id не передан, вызывается Model::getID(), чтобы получить текущий ID записи, а затем выполняется Model::find('count') на текущем источнике данных, чтобы определить наличие записи в постоянном хранилище.
Параметры
- целое число|строка
$idнеобязательный null - ID записи, существование которой необходимо проверить
Возвращает
booleanTrue, если такая запись существует
fieldsource public
field( string $name , array $conditions null , string $order null )
Возвращает содержимое одного поля, заданного предоставленными условиями, первой записи в указанном порядке.
Параметры
- строка
$name - Имя поля, которое нужно получить.
- массив
$conditionsнеобязательный null - SQL условия (по умолчанию NULL).
- строка
$orderнеобязательный null - SQL фрагмент ORDER BY.
Возвращает
string|falseСодержимое поля или false, если поле не найдено.
Ссылка
http://book.cakephp.org/2.0/ru/models/retrieving-your-data.html#model-fieldfindsource public
find( string $type 'first' , array $query array() )
Запрашивает данные из источника и возвращает массив результатов.
Используется для выполнения операций поиска, где первый аргумент — тип операции поиска (all / first / count / neighbors / list / threaded), второй параметр — параметры поиска (индексированный массив, включая: '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' => 2, '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' - Тип операции поиска (all / first / count / neighbors / list / threaded)
- массив
$queryнеобязательный array() - Поля параметров (conditions / fields / joins / limit / offset / order / page / group / callbacks)
Возвращает
array|nullМассив записей или Null при ошибке.
Ссылка
http://book.cakephp.org/2.0/ru/models/retrieving-your-data.htmlgetAffectedRowssource public
getAffectedRows( )
Возвращает количество строк, затронутых последним запросом.
Возвращает
integerКоличество строк
getAssociatedsource public
getAssociated( string $type null )
Получает все модели, с которыми связана данная модель.
Параметры
- строка
$typeнеобязательный null - Только ассоциации этого типа
Возвращает
array|nullАссоциации
getColumnTypesource public
getColumnType( string $column )
Возвращает тип столбца столбца в модели.
Параметры
- строка
$column - Имя столбца модели
Возвращает
stringТип столбца
getColumnTypessource public
getColumnTypes( )
Возвращает ассоциативный массив имён полей и типов столбцов.
Возвращает
arrayТипы полей, индексированные именем поля
getDataSourcesource public
getDataSource( )
Получает источник данных, к которому привязана данная модель.
Возвращает
DataSourceОбъект DataSource
getEventManagersource public
getEventManager( )
Возвращает экземпляр менеджера CakeEventManager, обрабатывающий любые обратные вызовы. Вы можете использовать этот экземпляр для регистрации новых слушателей или обратных вызовов событий модели, или создавать собственные события и запускать их по своему желанию.
Возвращает
CakeEventManagerCakeEventManager
getIDsource public
getID( integer $list 0 )
Возвращает текущий ID записи.
Параметры
- целое число
$listнеобязательный 0 - Индекс, в котором находится составной ID
Возвращает
mixedID текущей записи, false, если ID отсутствует
getInsertIDsource public
getInsertID( )
Возвращает ID последней записи, вставленной этой моделью.
Возвращает
mixedПоследний вставленный ID
getLastInsertIDsource public
getLastInsertID( )
Возвращает ID последней записи, вставленной этой моделью.
Возвращает
mixedПоследний вставленный ID
getNumRowssource public
getNumRows( )
Возвращает количество строк, возвращённых последним запросом.
Возвращает
integerКоличество строк
getVirtualFieldsource public
getVirtualField( string $field null )
Возвращает выражение для виртуального поля модели.
Параметры
- строка
$fieldнеобязательный null - Имя поля для поиска
Возвращает
mixedЕсли $field — строковое выражение, связанное с виртуальным полем $field. Если $field равен null, возвращает массив всех виртуальных полей модели или false, если виртуальных полей нет.
hasAnysource public
hasAny( array $conditions null )
Возвращает true, если существует запись, удовлетворяющая заданным условиям.
Параметры
- массив
$conditionsнеобязательно null - Массив SQL-условий
Возвращает
booleanTrue, если такая запись существует
hasFieldsource public
hasField( string|array $name , boolean $checkVirtual false )
Возвращает true, если указанное поле существует в таблице базы данных модели.
Параметры
- строка|массив
$name - Имя поля для поиска или массив имён полей
- логическое значение
$checkVirtualнеобязательно false - проверяет, объявлено ли поле как виртуальное
Возвращает
mixedЕсли $name — строка, возвращает логическое значение, указывающее, существует ли поле. Если $name — массив имён полей, возвращает первое существующее поле или false, если ни одно поле не существует.
hasMethodsource public
hasMethod( string $method )
Проверяет, вызываемый ли метод в модели. Это будет проверять собственные методы модели, наследуемые методы и методы, которые могут быть вызываемы через поведения.
Параметры
- строка
$method - Метод, который нужно вызвать.
Возвращает
booleanTrue, если метод вызываемый.
implementedEventssource public
implementedEvents( )
Возвращает список всех событий, которые будут срабатывать в модели в течение её жизненного цикла. Вы можете переопределить эту функцию, чтобы добавить свои собственные обработчики событий
Возвращает
arrayмассив
Реализация
CakeEventListener::implementedEvents() invalidFieldssource public
invalidFields( array|string $options array() )
Возвращает массив полей, которые не прошли валидацию текущей модели.
Кроме того, он заполняет свойство validationErrors модели тем же массивом.
Параметры
- массив|строка
$optionsнеобязательно массив() - Необязательный массив с пользовательскими параметрами, которые можно сделать доступными в обратном вызове beforeValidate.
Возвращает
arrayМассив недопустимых полей и их сообщений об ошибках
См.
Model::validates()invalidatesource public
invalidate( string $field , mixed $value true )
Помечает поле как невалидное, необязательно задавая имя правила валидации (в случае нескольких валидаций для поля), которое было нарушено.
Параметры
- строка
$field - Имя поля, которое нужно сделать невалидным
- смешанное
$valueнеобязательно true - Имя правила валидации, которое не прошло, или сообщение об ошибке валидации, которое должно быть возвращено. Если ключ валидации не указан, по умолчанию используется true.
isForeignKeysource public
isForeignKey( string $field )
Возвращает true, если заданное имя поля является внешним ключом в этой модели.
Параметры
- строка
$field - Возвращает true, если входная строка оканчивается на "_id"
Возвращает
booleanTrue, если поле является внешним ключом, указанным в массиве belongsTo.
isUniquesource public
isUnique( array $fields , boolean|array $or true )
Возвращает false, если какие-либо переданные поля соответствуют любым (по умолчанию, всем, если $or = false) их соответствующим значениям.
Может быть использован как метод валидации. При использовании в качестве метода валидации параметр $or содержит массив полей, подлежащих валидации.
Параметры
- массив
$fields - Пары поле/значение для поиска (если значения не указаны, они извлекаются из $this->data)
- логическое значение|массив
$orнеобязательно true - Если false, все указанные поля должны совпадать, чтобы получить значение false
Возвращает
booleanFalse, если найдены какие-либо записи, соответствующие каким-либо полям
isVirtualFieldsource public
isVirtualField( string $field )
Возвращает true, если указанное поле является виртуальным полем модели.
Параметры
- строка
$field - Имя поля для поиска
Возвращает
booleanуказывающее, существует ли поле в качестве виртуального поля модели.
joinModelsource public
joinModel( string|array $assoc , array $keys array() )
Получает имя и поля, которые будут использоваться моделью соединения. Это позволяет указывать поля соединения в определении ассоциации.
Параметры
- строка|массив
$assoc - Модель, которая подлежит соединению
- массив
$keysнеобязательно массив() - Любые ключи соединения, которые необходимо объединить с запрошенными ключами
Возвращает
arrayмассив
onErrorsource public
onError( )
Вызывается при возникновении ошибки на уровне источника данных.
Ссылка
http://book.cakephp.org/2.0/ru/models/callback-methods.html#onerrorquerysource public
query( string $sql )
Возвращает набор результатов для данного SQL-запроса. Пользовательские SQL-запросы должны выполняться с помощью этого метода.
Метод может иметь 2 и 3 параметра.
- 2-й параметр: либо логическое значение для управления кэшированием запроса, либо массив параметров для использования с заменителем параметров подготовленного запроса.
- 3-й параметр: если 2-й аргумент задан, логический флаг для включения/выключения кэширования запроса.
Параметры
- строка
$sql - SQL-запрос
Возвращает
mixedМассив набора результатов или логическое значение, указывающее на успех/неудачу в зависимости от выполненного запроса
Ссылка
http://book.cakephp.org/2.0/ru/models/retrieving-your-data.html#model-queryreadsource public
read( string|array $fields null , integer|string $id null )
Возвращает список полей из базы данных и устанавливает текущие данные модели (Model::$data) с найденной записью.
Параметры
- строка|массив
$fieldsнеобязательно null - Строка с именем одного поля или массив имён полей.
- целое число|строка
$idнеобязательно null - Идентификатор записи для чтения
Возвращает
arrayМассив полей базы данных или false, если не найдено
Ссылка
http://book.cakephp.org/2.0/ru/models/retrieving-your-data.html#model-readresetAssociationssource public
resetAssociations( )
Сбрасывает массивы ассоциаций модели до исходно определенных в модели. Обычно вызывается в конце каждого вызова Model::find()
Возвращает
booleanУспешно
savesource public
save( array $data null , boolean|array $validate true , array $fieldList array() )
Сохраняет данные модели (в соответствии с белым списком, если он предоставлен) в базе данных. По умолчанию валидация выполняется перед сохранением. Метод-прослойка для _doSave() с обработкой транзакций.
Параметры
- массив
$dataнеобязательный null - Данные для сохранения.
- boolean|массив
$validateнеобязательный true - Либо булево значение, либо массив. Если булево значение, указывает, должна ли выполняться валидация перед сохранением. Если массив, может содержать следующие ключи: - atomic: Если true (по умолчанию), попытается сохранить запись в одной транзакции. - validate: Устанавливается в true/false для включения/выключения валидации. - fieldList: Массив полей, которые вы хотите разрешить для сохранения. - callbacks: Устанавливается в false для отключения обратных вызовов. Использование 'before' или 'after' включит только эти обратные вызовы. -
counterCache: Булево значение для управления обновлением кэш-значений счетчиков (если таковые имеются) - массив
$fieldListнеобязательный array() - Список полей, которые разрешено сохранять
Возвращает
mixedПри успехе Model::$data, если оно не пустое, или true; false при ошибке
Исключения
ExceptionИсключение
PDOExceptionPDOException
Ссылка
http://book.cakephp.org/2.0/ru/models/saving-your-data.htmlТриггеры
Model.beforeSave $this, массив($options)Model.afterSave $this, массив($created, $options)
saveAllsource 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 выше.
Возвращает
mixedЕсли атомарный: 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
saveAssociatedsource 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 выше.
Возвращает
mixedЕсли атомарный: True при успехе, или false при ошибке. Иначе: массив, похожий на массив $data, переданный, но значения установлены в true/false в зависимости от того, была ли каждая запись успешно сохранена.
Исключения
PDOExceptionPDOException
Ссылка
http://book.cakephp.org/2.0/ru/models/saving-your-data.html#model-saveassociated-array-data-null-array-options-arraysaveFieldsource public
saveField( string $name , mixed $value , boolean|array $validate false )
Сохраняет значение одного поля в базе данных на основе текущего идентификатора модели.
Параметры
- строка
$name - Имя поля таблицы
- смешанное
$value - Значение поля
- boolean|массив
$validateнеобязательный false - Либо булево значение, либо массив. Если булево значение, указывает, должна ли выполняться валидация перед сохранением. Если массив, позволяет управлять параметрами 'validate', 'callbacks' и 'counterCache'. Подробнее см. Model::save() для каждого параметра.
Возвращает
boolean|arrayСм. Model::save() False при ошибке или массив данных модели при успехе.
См. также
Model::save()Ссылка
http://book.cakephp.org/2.0/ru/models/saving-your-data.html#model-savefield-string-fieldname-string-fieldvalue-validate-falsesaveManysource 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 выше.
Возвращает
mixedЕсли атомарный: True при успехе, или false при ошибке. Иначе: массив, похожий на массив $data, переданный, но значения установлены в true/false в зависимости от того, была ли каждая запись успешно сохранена.
Исключения
PDOExceptionPDOException
Ссылка
http://book.cakephp.org/2.0/ru/models/saving-your-data.html#model-savemany-array-data-null-array-options-arrayschemasource public
schema( boolean|string $field false )
Возвращает массив метаданных таблицы (имена и типы столбцов) из базы данных. $field => ключи(type, null, default, key, length, extra)
Параметры
- boolean|строка
$fieldнеобязательный false - Установите в true для перезагрузки схемы, или строку для возвращения определенного поля
Возвращает
array|nullМассив метаданных таблицы
setsource public
set( string|array|SimpleXmlElement|DomNode $one , string $two null )
Эта функция выполняет две задачи:
1. она ищет первичный ключ в массиве $one, и если он найден, устанавливает текущий id в значение $one[id]. Для всех ключей, кроме 'id', ключи и значения из $one копируются в свойство 'data' этого объекта. 2. Возвращает массив со всеми ключами и значениями из $one. (Альтернативные входные данные: две строки, которые преобразуются в массив с одним элементом и двумя измерениями, используя $one в качестве ключа и $two в качестве значения.)
Параметры
- string|array|SimpleXmlElement|DomNode
$one - Массив или строка данных
- string
$twoнеобязательно null - Строковое значение для альтернативного метода ввода данных
Возвращает
array|nullДанные со всеми ключами и значениями из $one, в противном случае null.
Ссылка
http://book.cakephp.org/2.0/ru/models/saving-your-data.htmlsetDataSourcesource public
setDataSource( string $dataSource null )
Устанавливает Источник данных, к которому привязан этот модель.
Параметры
- string
$dataSourceнеобязательно null - Имя Источника данных, как определено в app/Config/database.php
Выбрасывает
MissingConnectionExceptionMissingConnectionException
setInsertIDsource public
setInsertID( integer|string $id )
Устанавливает ID последней записи, вставленной этой моделью.
Параметры
- integer|string
$id - ID последней вставленной записи
setSourcesource public
setSource( string $tableName )
Устанавливает пользовательскую таблицу для вашего класса модели. Используется контроллером для выбора таблицы базы данных.
Параметры
- string
$tableName - Имя пользовательской таблицы
Выбрасывает
MissingTableExceptionпри отсутствии таблицы базы данных $tableName в источнике данных
unbindModelsource public
unbindModel( array $params , boolean $reset true )
Отключает ассоциации на лету.
Если $reset равен false, ассоциация не будет сброшена к исходным значениям, определённым в модели.
Пример: отключение ассоциации запроса Model Support для временного облегчения модели User:
$this->User->unbindModel(array('hasMany' => array('SupportRequest'))); Или, как альтернатива: $this->User->unbindModel(array('hasMany' => 'SupportRequest'));
Отключенные модели, которые не сделаны постоянными, будут сброшены при следующем вызове Model::find()
Параметры
- array
$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-flyupdateAllsource public
updateAll( array $fields , mixed $conditions true )
Обновляет несколько записей модели на основе набора условий.
Параметры
- array
$fields - Набор полей и значений, индексированных по полям. Поля обрабатываются как фрагменты SQL, для вставки литеральных значений вручную экранируйте ваши данные.
- mixed
$conditionsнеобязательно true - Условия для сопоставления, true для всех записей
Возвращает
booleanTrue при успехе, false при ошибке
Ссылка
http://book.cakephp.org/2.0/ru/models/saving-your-data.html#model-updateall-array-fields-mixed-conditionsupdateCounterCachesource public
updateCounterCache( array $keys array() , boolean $created false )
Обновляет кэш счетчика ассоциаций belongsTo после операции сохранения или удаления.
Параметры
- array
$keysнеобязательно array() - Необязательные данные внешнего ключа, по умолчанию содержат информацию из $this->data
- boolean
$createdнеобязательно false - True, если была создана новая запись, иначе обновляются только ассоциации с определённым 'counterScope'
validateAssociatedsource public
validateAssociated( array $data , array $options array() )
Проверяет одну запись, а также все её непосредственно связанные записи.
Параметры
-
atomic: Если true (по умолчанию), возвращает boolean. Если false, возвращает массив. -
fieldList: Эквивалентно параметру $fieldList в Model::save() -
deep: Если установлено в true, не только непосредственно связанные данные, но и вложенные данные ассоциаций также будут проверены.
Предупреждение: Этот метод может потенциально изменить переданный аргумент $data, Если вы не хотите, чтобы это произошло, сделайте копию $data перед передачей его в этот метод.
Параметры
- array
$data - $data Данные записи для проверки. Должен быть массивом, индексированным именем ассоциации.
- array
$optionsнеобязательно array() - Параметры для использования при проверке данных записи (см. выше), см. также $options в validates().
Возвращает
array|booleanЕсли атомарно: True при успехе, false при ошибке. В противном случае: массив, похожий на переданный массив $data, но значения установлены на true/false в зависимости от того, прошла ли проверка успешно для каждой записи.
validateManysource public
validateMany( array $data , array $options array() )
Проверяет несколько отдельных записей для одной модели.
Параметры
-
atomic: Если true (по умолчанию), возвращает boolean. Если false, возвращает массив. -
fieldList: Эквивалентно параметру $fieldList в Model::save() -
deep: Если установлено в true, все связанные данные также будут проверены.
Предупреждение: Этот метод может потенциально изменить переданный аргумент $data, Если вы не хотите, чтобы это произошло, сделайте копию $data перед передачей его в этот метод.
Параметры
- array
$data - $data Данные записи для проверки. Должен быть массивом с числовой индексацией.
- array
$optionsнеобязательно array() - Параметры для использования при проверке данных записи (см. выше), см. также $options в validates().
Возвращает
boolean|arrayЕсли атомарно: True при успехе, false при ошибке. В противном случае: массив, похожий на переданный массив $data, но значения установлены на true/false в зависимости от того, прошла ли проверка успешно для каждой записи.
validatessource public
validates( array $options array() )
Возвращает true, если все поля проходят проверку. Также будет проверять ассоциации hasAndBelongsToMany, которые используют ключ 'with'. Поскольку _saveMulti не может завершать операцию сохранения.
Будет проверять текущие установленные данные. Используйте Model::set() или Model::create() для установки активных данных.
Параметры
- array
$optionsнеобязательно array() - Необязательный массив с пользовательскими параметрами, которые будут доступны в обратном вызове beforeValidate
Возвращает
booleanTrue, если нет ошибок
validatorsource public
validator( ModelValidator $instance null )
Возвращает экземпляр валидатора модели для этого класса.
Параметры
-
ModelValidator$instanceнеобязательно null - Экземпляр валидатора модели. Если null, будет создан новый экземпляр ModelValidator, используя текущий объект модели.
Возвращает
ModelValidatorModelValidator
Методы, унаследованные от Object
_mergeVarssource protected
_mergeVars( array $properties , string $class , boolean $normalize true )
Объединяет свойства объекта $property со свойствами в определении $class. Значение свойства этого класса будет объединено поверх $class'.
Это предоставляет часть DRY-магии CakePHP. Если вы хотите её отключить, переопределите этот метод как пустую функцию.
Параметры
- массив
$properties - Имя свойств для объединения.
- строка
$class - Класс для объединения свойства с.
- логическое значение
$normalizeнеобязательно true - Установите в значение true, чтобы выполнить свойства через Hash::normalize() перед объединением.
_setsource protected
_set( array $properties array() )
Позволяет установить несколько свойств объекта в одной строке кода. Будут установлены только свойства, которые являются частью объявления класса.
Параметры
- массив
$propertiesнеобязательно array() - Ассоциативный массив, содержащий свойства и соответствующие значения.
_stopsource protected
_stop( integer|string $status 0 )
Остановка выполнения текущего скрипта. Оборачивает exit(), что облегчает тестирование.
Параметры
- целое число или строка
$statusнеобязательно 0 - см. http://php.net/exit для значений
dispatchMethodsource public
dispatchMethod( string $method , array $params array() )
Вызывает метод этого объекта с заданными параметрами. Предоставляет объектно-ориентированную оболочку для call_user_func_array
Параметры
- строка
$method - Имя вызываемого метода
- массив
$paramsнеобязательно array() - Список параметров для использования при вызове $method
Возвращаемое значение
mixedРезультат вызова метода
logsource 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Успех записи в журнал
requestActionsource 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 при успехе/неудаче или содержимое рендеренного действия, если в $extra установлен 'return'.
toStringsource public
toString( )
Преобразование объекта в строку. Каждый класс может переопределить этот метод по необходимости.
Возвращаемое значение
stringИмя этого класса
Свойства, унаследованные от Model
$Behaviorssource
public BehaviorCollection
Содержит объекты поведения, в настоящее время привязанные к этой модели.
null $__backAssociationsource
public array
Временное хранение ассоциаций моделей для динамической (от)вязки.
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 $_sourceConfiguredsource
protected boolean
Настроен ли источник данных.
См.
Model::getDataSource()false $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: имя класса модели, связанной с текущей моделью. Если вы определяете отношение 'Profile belongsTo User', ключ className должен быть равен 'User'. -
foreignKey: имя внешнего ключа в текущей модели. Это особенно полезно, если вам нужно определить несколько отношений belongsTo. Значение по умолчанию для этого ключа — подчеркнутое, единственное имя другой модели, с добавлением '_id'. -
conditions: фрагмент SQL для фильтрации записей связанной модели. Рекомендуется использовать имена моделей в фрагментах SQL: 'User.active = 1' предпочтительнее, чем просто 'active = 1'. -
type: тип соединения в запросе SQL, по умолчанию LEFT, но может быть не всегда подходящим; INNER может быть полезен, если вы хотите получить все данные из основной и связанной моделей или ничего, (эффективно при использовании с определёнными условиями). (Примечание: значение type в нижнем регистре - например, 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 $cacheSourcessource
public boolean
Включить или выключить кеширование источников для этой модели.
true $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().
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: Если зависимость установлена в true, возможно рекурсивное удаление модели. В этом примере записи Комментарий будут удалены, когда запись Пользователь, к которой они относятся, будет удалена. -
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: Когда ключ зависимость установлен в true, и метод модели delete() вызывается с параметром каскадирования, установленным в 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/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/en/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/en/models/model-attributes.html#usedbconfig'default' $useTablesource
public string
Пользовательское имя таблицы базы данных или null/false, если ассоциация таблицы нежелательна.
Ссылка
http://book.cakephp.org/2.0/en/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/en/models/model-attributes.html#validatehttp://book.cakephp.org/2.0/en/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/en/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.7/class-AppModel.html