Класс Aro
Объект запроса доступа
- CakeObject
-
Model реализует CakeEventListener -
AclNode -
Aro
Авторские права: Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
Лицензия: MIT License
Расположение: 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при привязке к модели, которой не существует.
Унаследованные методы от Модель
__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 child.
Параметры
- string
$id - Идентификатор записи, которая была удалена
- boolean
$cascade - Установите в true, чтобы удалить записи, которые зависят от этой записи
_deleteLinks()source protected
_deleteLinks( string $id )
Каскадно удаляет записи модели через связи HABTM.
Параметры
- string
$id - Идентификатор записи, которая была удалена
_doSave()source protected
_doSave( array $data null , array $options array() )
Сохраняет данные модели (на основе белого списка, если предоставлен) в базе данных. По умолчанию валидация происходит перед сохранением.
Параметры
- массив
$dataнеобязательно null - Данные для сохранения.
- массив
$optionsнеобязательно array() -
Может содержать следующие ключи:
- validate: Установить значение true/false для включения/отключения валидации.
- fieldList: Массив полей, которые вы хотите разрешить для сохранения.
- callbacks: Установить значение false для отключения обратных вызовов. Использование 'before' или 'after' включит только эти обратные вызовы.
-
counterCache: Булево значение для управления обновлением кэшей счетчиков (если есть)
Возвращает
смешанный типПри успехе Model::$data, если оно не пустое, или true, false при ошибке
Исключение
PDOExceptionСсылка
http://book.cakephp.org/2.0/ru/models/saving-your-data.html_filterResults()source protected
_filterResults( array $results , boolean $primary true )
Пропускает результаты запроса через методы модели и поведения послеFind().
Параметры
- массив
$results - Результаты для фильтрации
- булево
$primaryнеобязательно true - Если это результаты основной модели (результаты из модели, где была выполнена операция поиска)
Возвращает
массивНабор отфильтрованных результатов
Триггеры
Model.afterFind $this, массив($results, $primary)_findAll()source protected
_findAll( string $state , array $query , array $results array() )
Обрабатывает логику фильтрации до/после для операций find('all'). Вызывается только методом Model::find().
Параметры
- строка
$state - Либо "before", либо "after"
- массив
$query - Запрос.
- массив
$resultsнеобязательно array() - Результаты.
Возвращает
массивСм. также
Model::find()_findCount()source protected
_findCount( string $state , array $query , array $results array() )
Обрабатывает логику фильтрации до/после для операций find('count'). Вызывается только методом Model::find().
Параметры
- строка
$state - Либо "before", либо "after"
- массив
$query - Запрос.
- массив
$resultsнеобязательно array() - Результаты.
Возвращает
целое числоКоличество найденных записей, или false
См. также
Model::find()_findFirst()source protected
_findFirst( string $state , array $query , array $results array() )
Обрабатывает логику фильтрации до/после для операций find('first'). Вызывается только методом Model::find().
Параметры
- строка
$state - Либо "before", либо "after"
- массив
$query - Запрос.
- массив
$resultsнеобязательно array() - Результаты.
Возвращает
массивСм. также
Model::find()_findList()source protected
_findList( string $state , array $query , array $results array() )
Обрабатывает логику фильтрации до/после для операций find('list'). Вызывается только методом Model::find().
Параметры
- строка
$state - Либо "before", либо "after"
- массив
$query - Запрос.
- массив
$resultsнеобязательно array() - Результаты.
Возвращает
массивКлюч/значение пар первичных ключей/полей отображения всех найденных записей
См. также
Model::find()_findNeighbors()source protected
_findNeighbors( string $state , array $query , array $results array() )
Определяет предыдущее значение поля, а затем использует логику для поиска записей "обёртки" и возвращает их.
Параметры
- строка
$state - Либо "before", либо "after"
- массив
$query - Запрос.
- массив
$resultsнеобязательно array() - Результаты.
Возвращает
массив_findThreaded()source protected
_findThreaded( string $state , array $query , array $results array() )
В случае неоднозначных результатов (несколько результатов верхнего уровня с разными parent_id) результаты верхнего уровня с разными parent_id от первого результата будут удалены.
Параметры
- строка
$state - Либо "before", либо "after".
- массив
$query - Запрос.
- массив
$resultsнеобязательно array() - Результаты.
Возвращает
массивРезультаты с ветвлением
_generateAssociation()source protected
_generateAssociation( string $type , string $assocKey )
Создает ассоциацию на основе массива из строки.
Параметры
- строка
$type - 'belongsTo', 'hasOne', 'hasMany', 'hasAndBelongsToMany'
- строка
$assocKey - Ключ ассоциации.
_isUUIDField()source protected
_isUUIDField( string $field )
Проверяет, является ли переданное поле полем UUID.
Параметры
- строка
$field - поле для проверки
Возвращает
булево_normalizeXmlData()source protected
_normalizeXmlData( array $xml )
Нормализует Xml::toArray() для использования в Model::save()
Параметры
- массив
$xml - XML как массив
Возвращает
массив_prepareUpdateFields()source protected
_prepareUpdateFields( array $data )
Вспомогательный метод для Model::updateCounterCache(). Проверяет поля, которые будут обновлены, для
Параметры
- массив
$data - Поля записи, которые будут обновлены
Возвращает
массивВозвращает обновлённые значения внешних ключей, а также ключ 'old', содержащий старые значения, или пустой массив, если внешние ключи не обновляются.
_readDataSource()source protected
_readDataSource( string $type , array $query )
Чтение из источника данных
Model::_readDataSource() используется всеми вызовами find() для чтения из источника данных и может быть перегружен для кэширования вызовов источника данных.
protected function _readDataSource($type, $query) {
$cacheName = md5(json_encode($query) . json_encode($this->hasOne) . json_encode($this->belongsTo));
$cache = Cache::read($cacheName, 'cache-config-name');
if ($cache !== false) {
return $cache;
}
$results = parent::_readDataSource($type, $query);
Cache::write($cacheName, $results, 'cache-config-name');
return $results;
} Параметры
- строка
$type - Тип операции поиска (все / первый / счёт / соседи / список / с ветвлением)
- массив
$query - Поля параметров (условия / поля / соединения / предел / смещение / порядок / страница / группировка / обратные вызовы)
Возвращает
массив_saveMulti()source protected
_saveMulti( array $joined , integer|string $id , DataSource $db )
Сохраняет данные модели hasAndBelongsToMany в базе данных.
Параметры
- массив
$joined - Данные для сохранения
- целое число|строка
$id - ID записи в этой модели
-
DataSource$db - Экземпляр источника данных.
_setAliasData()source protected
_setAliasData( array $data )
Переместить значения в псевдоним
Параметры
- массив
$data - Данные.
Возвращает
массивafterDelete()source public
afterDelete( )
Вызывается после каждой операции удаления.
Ссылка
http://book.cakephp.org/2.0/ru/models/callback-methods.html#afterdeleteafterFind()source public
afterFind( mixed $results , boolean $primary false )
Вызывается после каждой операции поиска. Может использоваться для изменения любых результатов, возвращаемых find(). Значение возвращаемого результата должно быть (изменёнными) результатами.
Параметры
- смешанный
$results - Результаты операции поиска
- логический
$primaryнеобязательный false - Указывает, запрашивается ли эта модель напрямую (или как ассоциация)
Возвращает
смешанныйРезультат операции поиска
Ссылка
http://book.cakephp.org/2.0/ru/models/callback-methods.html#afterfindafterSave()source public
afterSave( boolean $created , array $options array() )
Вызывается после каждой успешной операции сохранения.
Параметры
- логический
$created - Истина, если это сохранение создало новую запись
- массив
$optionsнеобязательный array() - Параметры, переданные из Model::save().
Ссылка
http://book.cakephp.org/2.0/ru/models/callback-methods.html#aftersaveСм. также
Model::save()beforeDelete()source public
beforeDelete( boolean $cascade true )
Вызывается перед каждой операцией удаления.
Параметры
- логический
$cascadeнеобязательный true - Если true, записи, зависящие от этой записи, также будут удалены
Возвращает
логическийИстина, если операция должна продолжить выполнение, ложь, если её следует прервать
Ссылка
http://book.cakephp.org/2.0/ru/models/callback-methods.html#beforedeletebeforeFind()source public
beforeFind( array $query )
Вызывается перед каждой операцией поиска. Вернуть false, если вы хотите прервать вызов find, в противном случае вернуть (изменённые) данные запроса.
Параметры
- массив
$query - Данные, используемые для выполнения этого запроса, например, условия, порядок и т.д.
Возвращает
смешанныйистина, если операция должна продолжить выполнение, ложь, если её следует прервать; или изменённые $query для продолжения с новым $query
Ссылка
http://book.cakephp.org/2.0/ru/models/callback-methods.html#beforefindbeforeSave()source public
beforeSave( array $options array() )
Вызывается перед каждой операцией сохранения, после валидации. Вернуть значение, отличное от true, чтобы прервать сохранение.
Параметры
- массив
$optionsнеобязательный array() - Параметры, переданные из Model::save().
Возвращает
логическийИстина, если операция должна продолжить выполнение, ложь, если её следует прервать
Ссылка
http://book.cakephp.org/2.0/ru/models/callback-methods.html#beforesaveСм. также
Model::save()beforeValidate()source public
beforeValidate( array $options array() )
Вызывается во время операций валидации, перед валидацией. Обратите внимание, что правила пользовательской валидации можно определить в $validate.
Параметры
- массив
$optionsнеобязательный array() - Параметры, переданные из Model::save().
Возвращает
логическийИстина, если операция валидации должна продолжить выполнение, ложь - для прерывания
Ссылка
http://book.cakephp.org/2.0/ru/models/callback-methods.html#beforevalidateСм. также
Model::save()bindModel()source public
bindModel( array $params , boolean $reset true )
Связывание ассоциаций моделей динамически.
Если $reset равно ложно, ассоциация не будет сброшена к исходным значениям, определённым в модели.
Пример: Добавление нового связывания hasOne для модели Profile, не определённого в исходном коде модели:
$this->User->bindModel(array('hasOne' => array('Profile')));
Связывания, которые не являются постоянными, будут сброшены при следующем вызове Model::find() для этой модели.
Параметры
- массив
$params - Набор связываний (индексированные по типу связывания)
- логический
$resetнеобязательный true - Установите в значение false, чтобы сделать связывание постоянным
Возвращает
логическийУспех
Ссылка
http://book.cakephp.org/2.0/ru/models/associations-linking-models-together.html#creating-and-destroying-associations-on-the-flybuildQuery()source public
buildQuery( string $type 'first' , array $query array() )
Создаёт массив запроса, используемый источником данных для генерации запроса получения данных.
Параметры
- строка
$typeнеобязательный 'first' - Тип операции поиска (all / first / count / neighbors / list / threaded)
- массив
$queryнеобязательный array() - Поля параметров (conditions / fields / joins / limit / offset / order / page / group / callbacks)
Возвращает
массив|nullМассив запроса или null, если его невозможно создать по какой-либо причине
Вызывает
Model.beforeFind $this, array($query)См. также
Model::find()clear()source public
clear( )
Эта функция - удобная обертка для создания (false) и, как следует из названия, очищает id, данные и ошибки валидации.
Возвращает
логическийВсегда true при успехе
См. также
Model::create()create()source public
create( boolean|array $data array() , boolean $filterKey false )
Инициализирует модель для записи новой записи, загружает значения по умолчанию для полей, не определённых в $data, и очищает предыдущие ошибки валидации. Особенно полезно для сохранения данных в циклах.
Параметры
- логический|массив
$dataнеобязательный array() Необязательный массив данных для назначения модели после её создания. Если null или false, значения по умолчанию схемы не объединяются.
- логический
$filterKeyнеобязательный false - Если true, любые входные данные первичного ключа перезаписываются пустым значением
Возвращает
массивТекущие Model::data; после объединения $data и/или значений по умолчанию из базы данных
Ссылка
http://book.cakephp.org/2.0/ru/models/saving-your-data.html#model-create-array-data-arraydeconstruct()source public
deconstruct( string $field , array|object $data )
Распаковывает сложный тип данных (массив или объект) в значение одного поля.
Параметры
- строка
$field - Имя поля, подлежащего распаковке
- массив|объект
$data - Массив или объект, подлежащий распаковке в поле
Возвращает
смешанныйПолученные данные, которые следует назначить полю
delete()source public
delete( integer|string $id null , boolean $cascade true )
Удаляет запись для заданного идентификатора. Если идентификатор не указан, используется текущий идентификатор. Возвращает true при успехе.
Параметры
- integer|string
$idнеобязательно null - Идентификатор записи для удаления
- boolean
$cascadeнеобязательно true - Установите в значение true, чтобы удалить записи, зависящие от этой записи
Возвращаемое значение
booleanTrue при успехе
Триггеры
Model.beforeDelete $this, array($cascade)Model.afterDelete $this
Ссылка
http://book.cakephp.org/2.0/ru/models/deleting-data.htmldeleteAll()source public
deleteAll( mixed $conditions , boolean $cascade true , boolean $callbacks false )
Удаляет несколько записей модели на основе набора условий.
Параметры
- mixed
$conditions - Условия для соответствия
- boolean
$cascadeнеобязательно true - Установите в значение true, чтобы удалить записи, зависящие от этой записи
- boolean
$callbacksнеобязательно false - Выполнять колбэки
Возвращаемое значение
booleanTrue при успехе, false при ошибке
Ссылка
http://book.cakephp.org/2.0/ru/models/deleting-data.html#deleteallescapeField()source public
escapeField( string $field null , string $alias null )
Экранирует имя поля и добавляет префикс с именем модели. Экранирование выполняется в соответствии с правилами текущего драйвера базы данных.
Параметры
- string
$fieldнеобязательно null - Поле для экранирования (например: id)
- string
$aliasнеобязательно null - Псевдоним для модели (например: Post)
Возвращаемое значение
stringИмя экранированного поля для данной модели (например, id становится
Post.id).exists()source public
exists( integer|string $id null )
Возвращает true, если запись с указанным идентификатором существует.
Если $id не передан, вызывается Model::getID(), чтобы получить текущий идентификатор записи, а затем выполняется Model::find('count') на текущем источнике данных для определения существования записи в постоянном хранилище.
Параметры
- integer|string
$idнеобязательно null - Идентификатор записи для проверки существования
Возвращаемое значение
booleanTrue, если такая запись существует
field()source public
field( string $name , array $conditions null , string $order null )
Возвращает содержимое одного поля, заданного предоставленными условиями, первой записи в заданном порядке.
Параметры
- string
$name - Название поля для получения.
- array
$conditionsнеобязательно null - SQL условия (по умолчанию NULL).
- string
$orderнеобязательно null - SQL фрагмент ORDER BY.
Возвращаемое значение
string|falseСодержимое поля или false, если не найдено.
Ссылка
http://book.cakephp.org/2.0/ru/models/retrieving-your-data.html#model-fieldfind()source public
find( string $type 'first' , array $query array() )
Запрашивает данные из источника и возвращает массив набора результатов.
Используется для выполнения операций поиска, где первый аргумент — тип операции поиска (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' => 1,
'group' => 'type',
'callbacks' => false,
)); В дополнение к стандартным ключам запроса выше, вы можете предоставить специфичные для источника данных и поведения ключи. Например, при использовании источника данных на основе SQL вы можете использовать ключ joins для указания дополнительных присоединений, которые должны быть частью запроса.
$model->find('all', array(
'conditions' => array('name' => 'Thomas Anderson'),
'joins' => array(
array(
'alias' => 'Thought',
'table' => 'thoughts',
'type' => 'LEFT',
'conditions' => '`Thought`.`person_id` = `Person`.`id`'
)
)
)); Отключение колбэков
Ключ callbacks позволяет отключить или указать колбэки, которые должны быть выполнены. Чтобы отключить колбэки beforeFind и afterFind, установите 'callbacks' => false в ваших опциях. Вы также можете установить значение callbacks в 'before' или 'after', чтобы включить только указанный колбэк.
Добавление новых типов поиска
Поведения и типы поиска также могут определять пользовательские ключи поиска, которые передаются в find(). См. документацию по пользовательским типам поиска (http://book.cakephp.org/2.0/ru/models/retrieving-your-data.html#creating-custom-find-types) для получения информации о реализации пользовательских типов поиска.
Указание 'fields' для обозначения 'list':
- Если поля не указаны, то 'id' используется в качестве ключа, а 'model->displayField' используется в качестве значения.
- Если указано одно поле, 'id' используется в качестве ключа, а указанное поле используется в качестве значения.
- Если указаны три поля, они используются (в порядке) для ключа, значения и группы.
- В противном случае, первое и второе поля используются для ключа и значения.
Примечание: find(list) + представления баз данных имеют проблемы с MySQL 5.0. Попробуйте обновить до MySQL 5.1, если у вас возникают проблемы с представлениями баз данных.
Примечание: find(count) имеет свои собственные значения возврата.
Параметры
- string
$typeнеобязательно 'first' - Тип операции поиска (all / first / count / neighbors / list / threaded)
- array
$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.htmlgetAffectedRows()source public
getAffectedRows( )
Возвращает количество строк, затронутых последним запросом.
Возвращаемое значение
integerКоличество строк
getAssociated()source public
getAssociated( string $type null )
Получает все модели, с которыми связана эта модель.
Параметры
- string
$typeнеобязательно null - Только результаты ассоциаций этого типа
Возвращаемое значение
array|nullАссоциации
getColumnType()source public
getColumnType( string $column )
Возвращает тип столбца столбца в модели.
Параметры
- string
$column - Имя столбца модели
Возвращаемое значение
stringТип столбца
getColumnTypes()source public
getColumnTypes( )
Возвращает ассоциативный массив имён полей и типов столбцов.
Возвращаемое значение
arrayТипы полей, индексированные по имени поля
getDataSource()source public
getDataSource( )
Получает источник данных, к которому привязана эта модель.
Возвращаемое значение
DataSourceОбъект DataSource
getEventManager()source public
getEventManager( )
Возвращает экземпляр менеджера CakeEventManager, который обрабатывает любые колбэки. Вы можете использовать этот экземпляр для регистрации новых слушателей или колбэков для событий модели или создавать собственные события и вызывать их по своему желанию.
Возвращаемое значение
CakeEventManagergetID()source public
getID( integer $list 0 )
Возвращает текущий идентификатор записи.
Параметры
- integer
$listнеобязательно 0 - Индекс, на котором находится составной идентификатор
Возвращаемое значение
mixedИдентификатор текущей записи, false, если идентификатор отсутствует
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( )
Вызывается при возникновении ошибки на уровне источника данных.
Ссылка
http://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, указывающий на успех/неудачу в зависимости от выполненного запроса
Ссылка
http://book.cakephp.org/2.0/ru/models/retrieving-your-data.html#model-queryread()source public
read( string|array $fields null , integer|string $id null )
Возвращает список полей из базы данных и устанавливает текущие данные модели (Model::$data) с найденной записью.
Параметры
- string|array
$fieldsнеобязательно null - Строка с именем одного поля или массив имён полей.
- integer|string
$idнеобязательно null - Идентификатор записи для чтения.
Возвращает
arrayМассив полей базы данных или false, если не найдено
Ссылка
http://book.cakephp.org/2.0/ru/models/retrieving-your-data.html#model-readresetAssociations()source public
resetAssociations( )
Сбрасывает массивы ассоциаций модели до первоначальных значений, определённых в модели. Обычно вызывается в конце каждого вызова Model::find()
Возвращает
booleanУспех
save()source public
save( array $data null , boolean|array $validate true , array $fieldList array() )
Сохраняет данные модели (на основе белого списка, если предоставлен) в базе данных. По умолчанию валидация происходит перед сохранением. Метод-прослойка для _doSave() с обработкой транзакций.
Параметры
- array
$dataнеобязательно null - Данные для сохранения.
- boolean|array
$validateнеобязательно true -
Булево значение или массив. Если булево, указывает, нужно ли выполнять валидацию перед сохранением. Если массив, может содержать следующие ключи:
- atomic: Если true (по умолчанию), попытается сохранить запись в одной транзакции.
- validate: Устанавливает значение true/false для включения или выключения валидации.
- fieldList: Массив полей, которые вы хотите разрешить для сохранения.
- callbacks: Установите в false для отключения обратных вызовов. Использование 'before' или 'after' включит только эти обратные вызовы.
-
counterCache: Булево значение для управления обновлением счётчиков (если таковые имеются)
- array
$fieldListнеобязательно array() - Список полей, которые разрешено сохранить
Возвращает
mixedПри успехе Model::$data, если оно не пустое, или true; false при ошибке
Выбрасывает
ExceptionPDOException
Вызывает
Model.beforeSave $this, array($options)Model.afterSave $this, array($created, $options)
Ссылка
http://book.cakephp.org/2.0/ru/models/saving-your-data.htmlsaveAll()source public
saveAll( array $data array() , array $options array() )
Обратный метод совместимости для: saveMany(), validateMany(), saveAssociated() и validateAssociated()
Сохраняет несколько отдельных записей для одной модели; Также работает с одной записью, а также со всеми связанными записями.
Опции
-
validate: Установите в false для отключения валидации, true для валидации каждой записи перед сохранением, 'first' для валидации всех записей перед сохранением (по умолчанию) или 'only' для валидации записей, но не для их сохранения. -
atomic: Если true (по умолчанию), попытается сохранить все записи в одной транзакции. Следует установить в false, если база данных/таблица не поддерживает транзакции. -
fieldList: Эквивалентно параметру $fieldList в Model::save(). Должен быть ассоциативным массивом с именем модели в качестве ключа и массивом полей в качестве значения. Пример:array( 'SomeModel' => array('field'), 'AssociatedModel' => array('field', 'otherfield') ) -
deep: См. saveMany/saveAssociated -
callbacks: См. Model::save() -
counterCache: См. Model::save()
Параметры
- array
$dataнеобязательно array() Данные записи для сохранения. Это может быть либо массив с числовыми индексами (для сохранения нескольких записей одного типа), либо массив с индексами по имени ассоциации.
- 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
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Если атомарно: True при успехе, или false при неудаче. В противном случае: массив, похожий на массив $data, переданный, но значения установлены в true/false в зависимости от того, сохранилась ли каждая запись успешно.
Выбрасывает
PDOExceptionСсылка
http://book.cakephp.org/2.0/ru/models/saving-your-data.html#model-saveassociated-array-data-null-array-options-arraysaveField()source public
saveField( string $name , mixed $value , boolean|array $validate false )
Сохраняет значение одного поля в базе данных на основе текущего идентификатора модели.
Параметры
- string
$name - Имя поля таблицы
- mixed
$value - Значение поля
- boolean|array
$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-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Если атомарно: True при успехе, или false при неудаче. В противном случае: массив, похожий на массив $data, переданный, но значения установлены в true/false в зависимости от того, сохранилась ли каждая запись успешно.
Выбрасывает
PDOExceptionСсылка
http://book.cakephp.org/2.0/ru/models/saving-your-data.html#model-savemany-array-data-null-array-options-arrayschema()source public
schema( boolean|string $field false )
Возвращает массив метаданных таблицы (имена и типы столбцов) из базы данных. $field => ключи(тип, null, значение по умолчанию, ключ, длина, дополнительно)
Параметры
- boolean|string
$fieldнеобязательный false - Установите в значение true для перезагрузки схемы или строку для возвращения определенного поля
Возвращаемое значение
array|nullМассив метаданных таблицы
set()source public
set( string|array|SimpleXmlElement|DomNode $one , string $two null )
Эта функция выполняет две вещи:
- она сканирует массив $one в поисках первичного ключа и, если он найден, устанавливает текущий id в значение $one[id]. Для всех других ключей, кроме 'id', ключи и значения $one копируются в свойство 'data' этого объекта.
- Возвращает массив со всеми ключами и значениями $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.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 ложно, ассоциация не будет сброшена к исходным значениям, определенным в модели.
Пример: Отключить ассоциированную модель Заявки, чтобы временно уменьшить нагрузку на модель Пользователя:
$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-flyupdateAll()source 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-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() -
deep: Если установлено в значение 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 и именованных/переданных аргументов.
Возвращает
mixedBoolean true или false при успехе/неуспехе, или содержимое отрисованного действия, если 'return' установлен в $extra.
toString()source public
toString( )
Преобразование CakeObject в строку. Каждый класс может переопределить этот метод по мере необходимости.
Возвращает
строкаИмя этого класса
Подробное описание свойств
$hasAndBelongsToManysource
public массив
AROs связаны с ACOs с помощью Permission
array('Aco' => array('with' => 'Permission'))
© 2005–2016 The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/2.9/class-Aro.html