Класс Aro
Объект запроса доступа
- CakeObject
-
Model implements CakeEventListener
-
AclNode
-
Aro
Авторские права: Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org)
Лицензия: MIT Лицензия
Расположение: Cake/Model/Aro.php
Краткое описание свойств
-
$hasAndBelongsToManypublicAro связаны с ACO через разрешенияarray -
$namepublicИмя моделиstring
Унаследованные свойства
-
actsAs,cacheQueriesBehaviors,__backAssociation,__backContainableAssociation,__backInnerAssociation,__backOriginalAssociation,__safeUpdateMode,_associationKeys,_associations,_eventManager,_insertID,_schema,_sourceConfigured,_validator,alias,belongsTo,cacheSources,data,displayField,findMethods,findQueryType,hasMany,hasOne,id,order,plugin,primaryKey,recursive,schemaName,table,tablePrefix,tableToModel,useConsistentAfterFind,useDbConfig,useTable,validate,validationDomain,validationErrors,virtualFields,whitelist
Унаследованные методы из AclNode
__construct()source public
__construct( boolean|integer|string|array $id false , string $table null , string $ds null )
Конструктор
Параметры
- boolean|integer|string|array
$idопционально false Установите этот идентификатор для этой модели при запуске, также может быть массивом параметров, см. выше.
- string
$tableопционально null - Имя таблицы базы данных для использования.
- string
$dsопционально null - Имя подключения к источнику данных.
Переопределяет
Model::__construct() node()source public
node( string|array|Model $ref null )
Получает узел Aro/Aco для этой модели
Параметры
- string|array|
Model$refопционально null - Массив с 'model' и 'foreign_key', объектом модели или строковым значением
Возвращает
arrayНайденный узел в базе данных
Выбрасывает
CakeExceptionпри привязке к несуществующей модели.
Унаследованные методы из Model
__call()source public
__call( string $method , array $params )
Обрабатывает вызовы пользовательских методов, таких как findBy
Параметры
- string
$method - Имя вызываемого метода.
- array
$params - Параметры метода.
Возвращает
mixedРезультат вызываемого метода
__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 )
Очищает кэш для этой модели.
Параметры
- string
$typeопционально null Если null, удаляет кэшированные представления, если Cache.check равен true. Будет использоваться для удаления кэша запросов.
Возвращает
mixedTrue при удалении, null в противном случае
_collectForeignKeys()source protected
_collectForeignKeys( string $type 'belongsTo' )
Собраны внешние ключи из ассоциаций.
Параметры
- string
$typeопционально 'belongsTo' - Тип ассоциации.
Возвращает
array_constructLinkedModel()source protected
_constructLinkedModel( string $assoc , string $className null , string $plugin null )
Защищённый вспомогательный метод для создания связанных моделей заданного класса.
Параметры
- string
$assoc - Имя ассоциации
- string
$classNameопционально null - Имя класса
- string
$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.
Параметры
- string
$id - ID удалённой записи
- boolean
$cascade - Установите в true для удаления записей, зависящих от этой записи
_deleteLinks()source protected
_deleteLinks( string $id )
Каскадно удаляет записи модели через ключи объединения HABTM.
Параметры
- string
$id - ID удалённой записи
_doSave()source protected
_doSave( array $data null , array $options array() )
Сохраняет данные модели (в соответствии с белым списком, если он предоставлен) в базе данных. По умолчанию валидация выполняется перед сохранением.
Параметры
- массив
$dataнеобязательный null - Данные для сохранения.
- массив
$optionsнеобязательный массив() -
может содержать следующие ключи:
- validate: Устанавливается в true/false для включения/отключения валидации.
- fieldList: Массив полей, которые вы хотите разрешить для сохранения.
- callbacks: Устанавливается в false для отключения обратных вызовов. Использование 'before' или 'after' включит только эти обратные вызовы.
-
counterCache: Логическое значение для управления обновлением кэшей счетчиков (если они есть)
Возвращает
смешанный типПри успехе Model::$data, если он не пуст, или true, false при ошибке
Вызывает исключение
PDOExceptionСсылка
https://book.cakephp.org/2.0/ru/models/saving-your-data.html_filterResults()source protected
_filterResults( array $results , boolean $primary true )
Пропускает результаты запроса через методы модели и поведения afterFind().
Параметры
- массив
$results - Результаты для фильтрации
- логическое значение
$primaryнеобязательный true - Если это результаты основной модели (результаты из модели, где была выполнена операция поиска)
Возвращает
массивНабор отфильтрованных результатов
Вызывает
Model.afterFind $this, массив($results, $primary)_findAll()source protected
_findAll( string $state , array $query , array $results array() )
Обрабатывает логику фильтрации до/после для операций find('all'). Вызывается только методом Model::find().
Параметры
- строка
$state - Либо "before", либо "after"
- массив
$query - Запрос.
- массив
$resultsнеобязательный массив() - Результаты.
Возвращает
массивСм. также
Model::find()_findCount()source protected
_findCount( string $state , array $query , array $results array() )
Обрабатывает логику фильтрации до/после для операций find('count'). Вызывается только методом Model::find().
Параметры
- строка
$state - Либо "before", либо "after"
- массив
$query - Запрос.
- массив
$resultsнеобязательный массив() - Результаты.
Возвращает
целое числоКоличество найденных записей, или false
См. также
Model::find()_findFirst()source protected
_findFirst( string $state , array $query , array $results array() )
Обрабатывает логику фильтрации до/после для операций find('first'). Вызывается только методом Model::find().
Параметры
- строка
$state - Либо "before", либо "after"
- массив
$query - Запрос.
- массив
$resultsнеобязательный массив() - Результаты.
Возвращает
массивСм. также
Model::find()_findList()source protected
_findList( string $state , array $query , array $results array() )
Обрабатывает логику фильтрации до/после для операций find('list'). Вызывается только методом Model::find().
Параметры
- строка
$state - Либо "before", либо "after"
- массив
$query - Запрос.
- массив
$resultsнеобязательный массив() - Результаты.
Возвращает
массивКлючевые/значения пар первичных ключей/полей отображения всех найденных записей
См. также
Model::find()_findNeighbors()source protected
_findNeighbors( string $state , array $query , array $results array() )
Определяет значение предыдущего поля, затем использует логику для поиска записей «оборачивания» и возвращает их.
Параметры
- строка
$state - Либо "before", либо "after"
- массив
$query - Запрос.
- массив
$resultsнеобязательный массив() - Результаты.
Возвращает
массив_findThreaded()source protected
_findThreaded( string $state , array $query , array $results array() )
В случае возвращаемых неоднозначных результатов (несколько результатов верхнего уровня с разными parent_ids) результаты верхнего уровня с разными parent_ids по отношению к первому результату будут удалены.
Параметры
- строка
$state - Либо "before", либо "after".
- массив
$query - Запрос.
- массив
$resultsнеобязательный массив() - Результаты.
Возвращает
массивПотоковые результаты
_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 - Тип операции поиска (all / first / count / neighbors / list / threaded)
- массив
$query - Поля опций (условия / поля / соединения / limit / offset / order / page / group / callbacks)
Возвращает
массив_saveMulti()source protected
_saveMulti( array $joined , integer|string $id , DataSource $db )
Сохраняет данные модели hasAndBelongsToMany в базе данных.
Параметры
- массив
$joined - Данные для сохранения
- целое число/строка
$id - Идентификатор записи в этой модели
-
DataSource$db - экземпляр источника данных.
_setAliasData()source protected
_setAliasData( array $data )
Перемещение значений в псевдоним.
Параметры
- массив
$data - Данные.
Возвращает
массивafterDelete()source public
afterDelete( )
Вызывается после каждой операции удаления.
Ссылка
https://book.cakephp.org/2.0/ru/models/callback-methods.html#afterdeleteafterFind()source public
afterFind( mixed $results , boolean $primary false )
Вызывается после каждой операции поиска. Может быть использовано для изменения любых результатов, возвращаемых функцией find(). Значение возврата должно быть (изменёнными) результатами.
Параметры
- mixed
$results - Результаты операции поиска
- boolean
$primaryнеобязательно false - Указывает, запрашивается ли эта модель напрямую (или как ассоциация)
Возвращает
mixedРезультат операции поиска
Ссылка
https://book.cakephp.org/2.0/ru/models/callback-methods.html#afterfindafterSave()source public
afterSave( boolean $created , array $options array() )
Вызывается после каждой успешной операции сохранения.
Параметры
- boolean
$created - Истина, если это сохранение создало новую запись
- array
$optionsнеобязательно array() - Параметры, переданные из Model::save().
Ссылка
https://book.cakephp.org/2.0/ru/models/callback-methods.html#aftersaveСм. также
Model::save()beforeDelete()source public
beforeDelete( boolean $cascade true )
Вызывается перед каждой операцией удаления.
Параметры
- boolean
$cascadeнеобязательно true - Если true, записи, зависящие от этой записи, также будут удалены
Возвращает
booleanTrue, если операция должна продолжиться, false, если она должна быть прервана
Ссылка
https://book.cakephp.org/2.0/ru/models/callback-methods.html#beforedeletebeforeFind()source public
beforeFind( array $query )
Вызывается перед каждой операцией поиска. Верните false, если хотите прервать вызов поиска, в противном случае верните (изменённые) данные запроса.
Параметры
- array
$query - Данные, используемые для выполнения этого запроса, т.е. условия, порядок и т.д.
Возвращает
mixedtrue, если операция должна продолжиться, false, если она должна быть прервана; или, изменённый $query для продолжения с новым $query
Ссылка
https://book.cakephp.org/2.0/ru/models/callback-methods.html#beforefindbeforeSave()source public
beforeSave( array $options array() )
Вызывается перед каждой операцией сохранения, после валидации. Верните значение, отличное от true, чтобы остановить сохранение.
Параметры
- array
$optionsнеобязательно array() - Параметры, переданные из Model::save().
Возвращает
booleanTrue, если операция должна продолжиться, false, если она должна быть прервана
Ссылка
https://book.cakephp.org/2.0/ru/models/callback-methods.html#beforesaveСм. также
Model::save()beforeValidate()source public
beforeValidate( array $options array() )
Вызывается во время операций валидации, перед валидацией. Обратите внимание, что пользовательские правила валидации могут быть определены в $validate.
Параметры
- array
$optionsнеобязательно array() - Параметры, переданные из Model::save().
Возвращает
booleanTrue, если операция валидации должна продолжиться, false для прерывания
Ссылка
https://book.cakephp.org/2.0/ru/models/callback-methods.html#beforevalidateСм. также
Model::save()bindModel()source public
bindModel( array $params , boolean $reset true )
Связать модели с ассоциациями на лету.
Если $reset равно false, ассоциация не будет сброшена до оригинальных значений, определённых в модели.
Пример: добавить новую привязку hasOne к модели Profile, которая не определена в исходном коде модели:
$this->User->bindModel(array('hasOne' => array('Profile')));
Привязки, которые не являются постоянными, будут сброшены при следующем вызове Model::find() для этой модели.
Параметры
- array
$params - Набор привязок (индексированные по типу привязки)
- boolean
$resetнеобязательно true - Установите в false, чтобы сделать привязку постоянной
Возвращает
booleanУспех
Ссылка
https://book.cakephp.org/2.0/ru/models/associations-linking-models-together.html#creating-and-destroying-associations-on-the-flybuildQuery()source public
buildQuery( string $type 'first' , array $query array() )
Создаёт массив запроса, который используется источником данных для генерации запроса к данным.
Параметры
- string
$typeнеобязательно 'first' - Тип операции поиска (all / first / count / neighbors / list / threaded)
- array
$queryнеобязательно array() - Поля параметров (условия / поля / соединения / limit / offset / order / page / group / callbacks)
Возвращает
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|array
$dataнеобязательно array() Необязательный массив данных для присвоения модели после её создания. Если null или false, значения по умолчанию схемы не будут слиты.
- boolean
$filterKeyнеобязательно false - Если true, любые входные данные первичного ключа переопределяются пустым значением
Возвращает
arrayТекущие Model::data; после слияния $data и/или значений по умолчанию из базы данных
Ссылка
https://book.cakephp.org/2.0/ru/models/saving-your-data.html#model-create-array-data-arraydeconstruct()source public
deconstruct( string $field , array|object $data )
Распаковывает сложный тип данных (массив или объект) в значение одного поля.
Параметры
- string
$field - Имя поля, которое нужно распаковать
- array|object
$data - Массив или объект, которые нужно распаковать в поле
Возвращает
mixedПолученные данные, которые должны быть присвоены полю
delete()source public
delete( integer|string $id null , boolean $cascade true )
Удаляет запись для заданного ID. Если ID не указан, используется текущий ID. Возвращает true при успехе.
Параметры
- integer|string
$idoptional null - ID записи для удаления
- boolean
$cascadeoptional true - Установите в значение true, чтобы удалить записи, зависящие от этой записи
Возвращает
booleanTrue при успехе
Триггеры
Model.beforeDelete $this, array($cascade)Model.afterDelete $this
Ссылка
https://book.cakephp.org/2.0/ru/models/deleting-data.htmldeleteAll()source public
deleteAll( mixed $conditions , boolean $cascade true , boolean $callbacks false )
Удаляет несколько записей модели на основе набора условий.
Параметры
- mixed
$conditions - Условия соответствия
- boolean
$cascadeoptional true - Установите в значение true, чтобы удалить записи, зависящие от этой записи
- boolean
$callbacksoptional false - Выполнять колбэки
Возвращает
booleanTrue при успехе, false при неудаче
Ссылка
https://book.cakephp.org/2.0/ru/models/deleting-data.html#deleteallescapeField()source public
escapeField( string $field null , string $alias null )
Экранирует имя поля и добавляет имя модели. Экранирование выполняется в соответствии с правилами текущего драйвера базы данных.
Параметры
- string
$fieldoptional null - Поле для экранирования (например: id)
- string
$aliasoptional null - Псевдоним для модели (например: Post)
Возвращает
stringИмя экранированного поля для этой модели (например, id становится
Post.id).exists()source public
exists( integer|string $id null )
Возвращает true, если запись с определенным ID существует.
Если $id не передан, вызывается Model::getID(), чтобы получить текущий ID записи, а затем выполняется Model::find('count') на текущем настроенном источнике данных, чтобы определить существование записи в постоянном хранилище.
Параметры
- integer|string
$idoptional null - ID записи для проверки существования
Возвращает
booleanTrue, если такая запись существует
field()source public
field( string $name , array $conditions null , string $order null )
Возвращает содержимое одного поля, заданного заданными условиями, первой записи в заданном порядке.
Параметры
- string
$name - Имя поля для получения.
- array
$conditionsoptional null - SQL условия (по умолчанию NULL).
- string
$orderoptional null - SQL фрагмент ORDER BY.
Возвращает
string|falseСодержимое поля или false, если не найдено.
Ссылка
https://book.cakephp.org/2.0/ru/models/retrieving-your-data.html#model-fieldfind()source public
find( string $type 'first' , array $query array() )
Запрашивает у источника данных и возвращает массив результатов.
Используется для выполнения операций поиска, где первый аргумент - тип операции поиска (все / первый / количество / соседи / список / нитевидный), второй параметр - параметры поиска (индексированный массив, включая: 'conditions', 'limit', 'recursive', 'page', 'fields', 'offset', 'order', 'callbacks')
Например:
$model->find('all', array(
'conditions' => array('name' => 'Thomas Anderson'),
'fields' => array('name', 'email'),
'order' => 'field3 DESC',
'recursive' => 1,
'group' => 'type',
'callbacks' => false,
)); В дополнение к стандартным ключам запроса выше, вы можете предоставить ключи, специфичные для источника данных и поведения. Например, при использовании источника данных на основе SQL вы можете использовать ключ joins для указания дополнительных соединений, которые должны быть частью запроса.
$model->find('all', array(
'conditions' => array('name' => 'Thomas Anderson'),
'joins' => array(
array(
'alias' => 'Thought',
'table' => 'thoughts',
'type' => 'LEFT',
'conditions' => '`Thought`.`person_id` = `Person`.`id`'
)
)
)); Отключение колбэков
Ключ callbacks позволяет вам отключить или указать колбэки, которые должны быть выполнены. Чтобы отключить колбэки beforeFind и afterFind, установите 'callbacks' => false в ваших параметрах. Вы также можете установить параметр callbacks в 'before' или 'after', чтобы включить только указанный колбэк.
Добавление новых типов поиска
Поведения и типы поиска также могут определять пользовательские ключи поиска, которые передаются в find(). См. документацию по пользовательским типам поиска (https://book.cakephp.org/2.0/ru/models/retrieving-your-data.html#creating-custom-find-types) для получения информации о реализации пользовательских типов поиска.
Указание 'fields' для обозначения 'list':
- Если поля не указаны, то 'id' используется для ключа, а 'model->displayField' используется для значения.
- Если указано одно поле, то 'id' используется для ключа, а указанное поле используется для значения.
- Если указаны три поля, они используются (в порядке) для ключа, значения и группы.
- В противном случае, первые два поля используются для ключа и значения.
Примечание: find(list) + представления баз данных имеют проблемы с MySQL 5.0. Попробуйте обновить до MySQL 5.1, если у вас есть проблемы с представлениями баз данных.
Примечание: find(count) имеет свои собственные значения возврата.
Параметры
- string
$typeoptional 'first' - Тип операции поиска (все / первый / количество / соседи / список / нитевидный)
- array
$queryoptional array() - Поля параметров (conditions / fields / joins / limit / offset / order / page / group / callbacks)
Возвращает
array|nullМассив записей или Null при ошибке.
Ссылка
https://book.cakephp.org/2.0/ru/models/retrieving-your-data.htmlgetAffectedRows()source public
getAffectedRows( )
Возвращает количество строк, затронутых последним запросом.
Возвращает
integerКоличество строк
getAssociated()source public
getAssociated( string $type null )
Получает все модели, с которыми связана эта модель.
Параметры
- string
$typeoptional null - Только ассоциации результатов этого типа
Возвращает
array|nullАссоциации
getColumnType()source public
getColumnType( string $column )
Возвращает тип столбца столбца в модели.
Параметры
- string
$column - Имя столбца модели
Возвращает
stringТип столбца
getColumnTypes()source public
getColumnTypes( )
Возвращает ассоциативный массив имен полей и типов столбцов.
Возвращает
arrayТипы полей, индексированные по имени поля
getDataSource()source public
getDataSource( )
Получает DataSource, к которому привязана эта модель.
Возвращает
DataSourceОбъект DataSource
getEventManager()source public
getEventManager( )
Возвращает экземпляр менеджера CakeEventManager, обрабатывающий любые колбэки. Вы можете использовать этот экземпляр для регистрации новых слушателей или колбэков для событий модели или создавать свои собственные события и вызывать их по своему усмотрению.
Возвращает
CakeEventManagergetID()source public
getID( integer $list 0 )
Возвращает текущий ID записи.
Параметры
- integer
$listoptional 0 - Индекс, на котором находится составной ID
Возвращает
mixedID текущей записи, false, если ID отсутствует
getInsertID()source public
getInsertID( )
Возвращает ID последней записи, вставленной этой моделью.
Возвращает
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, если указанное поле является виртуальным полем модели
Параметры
- string
$field - Имя поля для поиска
Возвращает
booleanУказывающее, существует ли поле как виртуальное поле модели.
joinModel()source public
joinModel( string|array $assoc , array $keys array() )
Получает имя и поля, которые будут использоваться моделью для объединения. Это позволяет указывать поля объединения в определении ассоциации.
Параметры
- string|array
$assoc - Модель, которая должна быть объединена
- array
$keysнеобязательно array() - Любые ключи объединения, которые необходимо объединить с запрошенными ключами
Возвращает
arrayonError()source public
onError( )
Вызывается при возникновении ошибки на уровне источника данных.
Ссылка
https://book.cakephp.org/2.0/ru/models/callback-methods.html#onerrorquery()source public
query( string $sql )
Возвращает набор результатов для заданного SQL-запроса. Пользовательские SQL-запросы должны выполняться с помощью этого метода.
Метод может принимать 2-й и 3-й параметры.
- 2-й параметр: либо boolean для управления кешированием запросов, либо массив параметров для использования с плейсхолдерами подготовленных заявлений.
- 3-й параметр: если 2-й аргумент задан, boolean-флаг для включения/выключения кеширования запросов.
Если параметр кеширования запросов не задан как 2-й или 3-й аргумент, используется значение по умолчанию модели $cacheQueries.
Параметры
- string
$sql - SQL-запрос
Возвращает
mixedМассив набора результатов или boolean, указывающий на успех/неудачу в зависимости от выполненного запроса
Ссылка
https://book.cakephp.org/2.0/ru/models/retrieving-your-data.html#model-queryread()source public
read( string|array $fields null , integer|string $id null )
Возвращает список полей из базы данных и устанавливает текущие данные модели (Model::$data) с найденной записью.
Параметры
- string|array
$fieldsнеобязательно null - Строка с именем одного поля или массив имён полей.
- integer|string
$idнеобязательно null - Идентификатор записи для чтения.
Возвращает
arrayМассив полей базы данных или false, если запись не найдена
Ссылка
https://book.cakephp.org/2.0/ru/models/retrieving-your-data.html#model-readresetAssociations()source public
resetAssociations( )
Сбрасывает массивы ассоциаций для модели до исходных, определённых в модели. Обычно вызывается в конце каждого вызова Model::find()
Возвращает
booleanУспех
save()source public
save( array $data null , boolean|array $validate true , array $fieldList array() )
Сохраняет данные модели (основываясь на белом списке, если он предоставлен) в базе данных. По умолчанию валидация выполняется до сохранения. Метод-прослойка для _doSave() с обработкой транзакций.
Параметры
- array
$dataнеобязательно null - Данные для сохранения.
- boolean|array
$validateнеобязательно true -
Либо boolean, либо массив. Если boolean, указывает, необходимо ли выполнять валидацию перед сохранением. Если массив, может содержать следующие ключи:
- atomic: Если true (по умолчанию), попытается сохранить запись в одной транзакции.
- validate: Устанавливается в true/false для включения или отключения валидации.
- fieldList: Массив полей, которые вы хотите разрешить для сохранения.
- callbacks: Устанавливается в false для отключения обратного вызова. Использование 'before' или 'after' включит только эти обратные вызовы.
-
counterCache: Boolean для управления обновлением счётчиков (если таковые имеются)
- array
$fieldListнеобязательно array() - Список полей, разрешённых для сохранения.
Возвращает
mixedПри успехе Model::$data, если он не пустой, или true; false при ошибке
Исключения
ExceptionPDOException
Срабатывающие события
Model.beforeSave $this, array($options)Model.afterSave $this, array($created, $options)
Ссылка
https://book.cakephp.org/2.0/ru/models/saving-your-data.htmlsaveAll()source public
saveAll( array $data array() , array $options array() )
Метод-прослойка обратной совместимости для: saveMany(), validateMany(), saveAssociated() и validateAssociated()
Сохраняет несколько отдельных записей для одной модели; Также работает с одной записью, а также со всеми её связанными записями.
Опции
-
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()
Параметры
- array
$dataнеобязательно array() Данные записи для сохранения. Это может быть массив с числовыми индексами (для сохранения нескольких записей одного типа) или массив, индексированный именем ассоциации.
- array
$optionsнеобязательно array() - Опции для использования при сохранении данных записи, см. $options выше.
Возвращает
mixedЕсли atomic: True при успехе или false при ошибке. В противном случае: массив, похожий на переданный массив $data, но значения установлены в true/false в зависимости от того, сохранилась ли каждая запись успешно.
Ссылка
https://book.cakephp.org/2.0/ru/models/saving-your-data.html#model-saveassociated-array-data-null-array-options-arrayhttps://book.cakephp.org/2.0/ru/models/saving-your-data.html#model-saveall-array-data-null-array-options-array
saveAssociated()source public
saveAssociated( array $data null , array $options array() )
Сохраняет одну запись, а также все её непосредственно связанные записи.
Опции
-
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()
Параметры
- array
$dataнеобязательно null - Данные записи для сохранения. Должен быть массивом, индексированным именем ассоциации.
- array
$optionsнеобязательно array() - Опции для использования при сохранении данных записи, см. $options выше.
Возвращает
mixedЕсли atomic: True при успехе или false при ошибке. В противном случае: массив, похожий на переданный массив $data, но значения установлены в true/false в зависимости от того, сохранилась ли каждая запись успешно.
Исключения
PDOExceptionСсылка
https://book.cakephp.org/2.0/ru/models/saving-your-data.html#model-saveassociated-array-data-null-array-options-arraysaveField()source public
saveField( string $name , mixed $value , boolean|array $validate false )
Сохраняет значение одного поля в базе данных, основываясь на текущем идентификаторе модели.
Параметры
- string
$name - Имя поля таблицы
- mixed
$value - Значение поля
- boolean|array
$validateнеобязательно false Либо boolean, либо массив. Если boolean, указывает, необходимо ли выполнять валидацию перед сохранением. Если массив, позволяет управлять параметрами 'validate', 'callbacks' и 'counterCache'. См. Model::save() для подробностей по каждой опции.
Возвращает
boolean|arrayСм. Model::save() False при ошибке или массив данных модели при успехе.
См. также
Model::save()Ссылка
https://book.cakephp.org/2.0/ru/models/saving-your-data.html#model-savefield-string-fieldname-string-fieldvalue-validate-falsesaveMany()source public
saveMany( array $data null , array $options array() )
Сохраняет несколько отдельных записей для одной модели.
Опции
-
validate: Устанавливается в false для отключения валидации, true для валидации каждой записи перед сохранением, 'first' для валидации *всех* записей перед сохранением любой (по умолчанию), -
atomic: Если true (по умолчанию), попытается сохранить все записи в одной транзакции. Должно быть установлено в false, если база данных/таблица не поддерживает транзакции. -
fieldList: Эквивалентно параметру $fieldList в Model::save() -
deep: Если установлено в true, все связанные данные будут сохранены также. -
callbacks: См. Model::save() -
counterCache: См. Model::save()
Параметры
- array
$dataнеобязательно null - Данные записи для сохранения. Должен быть массивом с числовыми индексами
- array
$optionsнеобязательно array() - Опции для использования при сохранении данных записи, см. $options выше.
Возвращает
mixedЕсли atomic: True при успехе или false при ошибке. В противном случае: массив, похожий на переданный массив $data, но значения установлены в true/false в зависимости от того, сохранилась ли каждая запись успешно.
Исключения
PDOExceptionСсылка
https://book.cakephp.org/2.0/ru/models/saving-your-data.html#model-savemany-array-data-null-array-options-arrayschema()source public
schema( boolean|string $field false )
Возвращает массив метаданных таблицы (имена и типы столбцов) из базы данных. $field => ключи(тип, null, значение по умолчанию, ключ, длина, дополнительная информация)
Параметры
- boolean|string
$fieldнеобязательный false - Установите в значение true, чтобы перезагрузить схему, или строку, чтобы вернуть конкретное поле
Возвращает
array|nullМассив метаданных таблицы
set()source public
set( string|array|SimpleXmlElement|DomNode $one , string $two null )
Эта функция выполняет два действия:
- она сканирует массив $one в поисках первичного ключа и, если он найден, устанавливает текущий идентификатор в значение $one[id]. Для всех ключей, кроме 'id', ключи и значения $one копируются в свойство 'data' этого объекта.
- Возвращает массив со всеми ключами и значениями $one. (Альтернативный входные данные: две строки, которые преобразуются в одномерный двумерный массив с использованием $one в качестве ключа и $two в качестве его значения.)
Параметры
- string|array|SimpleXmlElement|DomNode
$one - Массив или строка данных
- string
$twoнеобязательный null - Строковое значение для альтернативного метода входных данных
Возвращает
array|nullДанные со всеми ключами и значениями $one, иначе null.
Ссылка
https://book.cakephp.org/2.0/ru/models/saving-your-data.htmlsetDataSource()source public
setDataSource( string $dataSource null )
Устанавливает источник данных, к которому привязан этот модель.
Параметры
- string
$dataSourceнеобязательный null - Имя источника данных, как определено в app/Config/database.php
Выбрасывает
MissingConnectionExceptionsetInsertID()source public
setInsertID( integer|string $id )
Устанавливает идентификатор последней записи, вставленной этой моделью
Параметры
- integer|string
$id - Идентификатор последней вставленной записи
setSource()source public
setSource( string $tableName )
Устанавливает пользовательскую таблицу для вашего класса модели. Используется контроллером для выбора таблицы базы данных.
Параметры
- string
$tableName - Имя пользовательской таблицы
Выбрасывает
MissingTableExceptionесли таблица базы данных $tableName не найдена в источнике данных
unbindModel()source public
unbindModel( array $params , boolean $reset true )
Отключить ассоциации на лету.
Если $reset равен false, ассоциация не будет сброшена к значениям, определенным в модели.
Пример: отключить ассоциированную модель Заявки, чтобы временно уменьшить нагрузку на модель Пользователь:
$this->User->unbindModel(array('hasMany' => array('SupportRequest'))); Или альтернативно: $this->User->unbindModel(array('hasMany' => 'SupportRequest'));
Отключенные модели, которые не сделаны постоянными, будут сброшены при следующем вызове Model::find()
Параметры
- array
$params - Набор связей для отключения (индексированные по типу связи)
- boolean
$resetнеобязательный true - Установите в false, чтобы сделать отключение постоянным
Возвращает
booleanУспех
Ссылка
https://book.cakephp.org/2.0/ru/models/associations-linking-models-together.html#creating-and-destroying-associations-on-the-flyupdateAll()source public
updateAll( array $fields , mixed $conditions true )
Обновляет несколько записей модели на основе набора условий.
Параметры
- array
$fields Набор полей и значений, индексированных по полям. Поля обрабатываются как SQL-фрагменты, для вставки литеральных значений вручную необходимо экранировать данные.
- mixed
$conditionsнеобязательный true - Условия для сопоставления, true для всех записей
Возвращает
booleanTrue при успехе, false при неудаче
Ссылка
https://book.cakephp.org/2.0/ru/models/saving-your-data.html#model-updateall-array-fields-mixed-conditionsupdateCounterCache()source public
updateCounterCache( array $keys array() , boolean $created false )
Обновляет кэш счётчиков ассоциаций belongsTo после операции сохранения или удаления.
Параметры
- array
$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() -
fieldList: Если установлено в значение true, валидируются не только непосредственно связанные данные, но и данные, вложенные на более глубоких уровнях.
Предупреждение: Этот метод потенциально может изменить переданный аргумент $data, Если вы не хотите, чтобы это происходило, сделайте копию $data перед передачей её в этот метод.
Параметры
- array
$data - $data Данные записи для проверки. Это должен быть массив, индексированный по имени ассоциации.
- array
$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 перед передачей её в этот метод.
Параметры
- array
$data - $data Данные записей для проверки. Должен быть массивом с числовой индексацией.
- array
$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() для установки активных данных.
Параметры
- array
$optionsнеобязательный array() - Необязательный массив с пользовательскими опциями, которые будут доступны в обратном вызове beforeValidate.
Возвращает
booleanTrue, если нет ошибок
validator()source public
validator( ModelValidator $instance null )
Возвращает экземпляр валидатора модели для этого класса.
Параметры
-
ModelValidator$instanceнеобязательный null Экземпляр валидатора модели. Если null, будет создан новый экземпляр ModelValidator с использованием текущего объекта модели.
Возвращает
ModelValidatorМетоды, унаследованные от CakeObject
_mergeVars()source protected
_mergeVars( array $properties , string $class , boolean $normalize true )
Объединяет свойства этого объекта $property со свойством в определении $class. Значение этого класса для свойства будет объединено поверх $class'
Это обеспечивает некоторую из магии DRY, предоставляемой CakePHP. Если вы хотите это отключить, переопределите этот метод как пустую функцию.
Параметры
- массив
$properties - Имя свойств для объединения.
- строка
$class - Класс для объединения свойства с.
- логическое значение
$normalizeнеобязательно true - Установите в значение true, чтобы выполнить свойства через Hash::normalize() перед объединением.
_set()source protected
_set( array $properties array() )
Позволяет задавать несколько свойств объекта в одной строке кода. Будут установлены только свойства, которые являются частью объявления класса.
Параметры
- массив
$propertiesнеобязательно array() - Ассоциативный массив, содержащий свойства и соответствующие значения.
_stop()source protected
_stop( integer|string $status 0 )
Останавливает выполнение текущего скрипта. Обёртка вокруг exit(), упрощающая тестирование.
Параметры
- целое число/строка
$statusнеобязательно 0 - см. http://php.net/exit для значений
dispatchMethod()source public
dispatchMethod( string $method , array $params array() )
Вызывает метод этого объекта с заданными параметрами. Предоставляет объектно-ориентированную обёртку для call_user_func_array
Параметры
- строка
$method - Имя вызываемого метода
- массив
$paramsнеобязательно array() - Список параметров для использования при вызове $method
Возвращаемое значение
mixedВозвращает результат вызова метода
log()source public
log( string $msg , integer $type LOG_ERR , null|string|array $scope null )
Удобный метод для записи сообщения в CakeLog. См. CakeLog::write() для получения дополнительной информации о записи в журналы.
Параметры
- строка
$msg - Сообщение журнала
- целое число
$typeнеобязательно LOG_ERR - Константа типа ошибки. Определена в app/Config/core.php.
- null|строка|массив
$scopeнеобязательно null Области(и), в которых создаётся сообщение журнала. См. CakeLog::config() для получения дополнительной информации о журналах областей.
Возвращаемое значение
booleanУспех записи в журнал
requestAction()source public
requestAction( string|array $url , array $extra array() )
Вызывает метод контроллера из любой точки. Может использоваться для соединения контроллеров или связывания плагинов с основным приложением. requestAction может использоваться для возвращения рендеренных представлений или извлечения возвращаемого значения из действий контроллера.
Под капотом этот метод использует Router::reverse() для преобразования параметра $url в строку URL. Вы должны использовать форматы URL, совместимые с Router::reverse()
Передача данных POST и GET
Данные POST и GET могут быть смоделированы в requestAction. Используйте $extra['url'] для данных GET. Параметр $extra['data'] позволяет моделировать данные POST.
Параметры
- строка|массив
$url Строка или массив URL. В отличие от других массивов URL в CakePHP, этот URL не будет автоматически обрабатывать переданные и именованные аргументы в параметре $url.
- массив
$extraнеобязательно array() Если массив содержит ключ "return", он устанавливает AutoRender в значение true. Также может использоваться для отправки данных GET/POST и именованных/переданных аргументов.
Возвращаемое значение
mixedБулево значение true или false при успехе/неудачи, или содержимое рендерного действия, если в $extra задан ключ 'return'.
toString()source public
toString( )
Преобразование CakeObject в строку. Каждый класс может переопределить этот метод по мере необходимости.
Возвращаемое значение
строкаИмя этого класса
Подробное описание свойств
$hasAndBelongsToManysource
public массив
AROs связаны с ACOs через разрешения
array('Aco' => array('with' => 'Permission'))
© 2005–2017 The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/2.10/class-Aro.html