Класс Permission
Разрешения, связывающие ARO с ACO
- Объект
-
Модель реализует CakeEventListener -
AppModel -
Разрешение
Авторские права: Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
Лицензия: MIT License
Расположение: Cake/Model/Permission.php
Краткое описание свойств
-
$actsAspublicНет поведений для этой моделиarray -
$belongsTopublicРазрешения связывают ARO с ACOarray -
$cacheQueriespublicЯвно отключает кэширование запросов в памятиboolean -
$useTablepublicПереопределяет имя таблицы по умолчаниюstring
Наследованные свойства
-
Behaviors,__backAssociation,__backContainableAssociation,__backInnerAssociation,__backOriginalAssociation,__safeUpdateMode,_associationKeys,_associations,_eventManager,_insertID,_schema,_sourceConfigured,_validator,alias,cacheSources,data,displayField,findMethods,findQueryType,hasAndBelongsToMany,hasMany,hasOne,id,name,order,plugin,primaryKey,recursive,schemaName,table,tablePrefix,tableToModel,useConsistentAfterFind,useDbConfig,validate,validationDomain,validationErrors,virtualFields,whitelist
Краткое описание методов
- __construct() public
Конструктор, используемый для указания этой модели на использование базы данных, настроенной для ACL
- allow() publicРазрешить $aro доступ к действию $actions в $aco
- check() publicПроверяет, имеет ли заданный $aro доступ к действию $action в $aco
- getAclLink() publicПолучить массив связей контроля доступа между заданным Aro и Aco
- getAcoKeys() publicПолучить ключи типов crud
Подробное описание методов
__construct()source public
__construct( )
Конструктор, используемый для указания этой модели на использование базы данных, настроенной для ACL
Переопределяет
Model::__construct() allow()source public
allow( string $aro , string $aco , string $actions '*' , integer $value 1 )
Разрешить $aro доступ к действию $actions в $aco
Параметры
- string
$aro - ARO Идентификатор запрашиваемого объекта.
- string
$aco - ACO Идентификатор контролируемого объекта.
- string
$actionsнеобязательно '*' - Действие (по умолчанию *) Неверные разрешения приведут к исключению.
- integer
$valueнеобязательно 1 - Значение для указания типа доступа (1 для предоставления доступа, -1 для отказа, 0 для наследования)
Возвращает
booleanУспех
Исключение
AclExceptionпри неверном ключе разрешения.
check()source public
check( string $aro , string $aco , string $action '*' )
Проверяет, имеет ли заданный $aro доступ к действию $action в $aco
Параметры
- string
$aro - ARO Идентификатор запрашиваемого объекта.
- string
$aco - ACO Идентификатор контролируемого объекта.
- string
$actionнеобязательно '*' - Действие (по умолчанию *)
Возвращает
booleanУспех (true, если ARO имеет доступ к действию в ACO, false в противном случае)
getAclLink()source public
getAclLink( string $aro , string $aco )
Получить массив связей контроля доступа между заданным Aro и Aco
Параметры
- string
$aro - ARO Идентификатор запрашиваемого объекта.
- string
$aco - ACO Идентификатор контролируемого объекта.
Возвращает
arrayИндексированный массив с: 'aro', 'aco' и 'link'
getAcoKeys()source public
getAcoKeys( array $keys )
Получить ключи типов crud
Параметры
- array
$keys - Схема разрешений
Возвращает
arrayключи разрешений
Наследованные методы из 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 )
Защищённый вспомогательный метод для создания связанных моделей заданного класса.
Параметры
- строка
$assoc - Имя ассоциации
- строка
$classNameнеобязательно null - Имя класса
- строка
$pluginнеобязательно null -
Имя плагина, где расположен $className. Примеры: public $hasMany = array('Assoc' => array('className' => 'ModelName')); использование: $this->Assoc->modelMethods();
public $hasMany = array('ModelName'); usage: $this->ModelName->modelMethods();
_deleteDependent()source protected
_deleteDependent( string $id , boolean $cascade )
Каскадно удаляет записи модели через связанные hasMany и hasOne дочерние записи.
Параметры
- строка
$id - Идентификатор удалённой записи
- логическое значение
$cascade - Установить в true, чтобы удалить записи, зависящие от этой записи
_deleteLinks()source protected
_deleteLinks( string $id )
Каскадно удаляет записи модели через ключи соединения HABTM.
Параметры
- строка
$id - Идентификатор удалённой записи
_doSave()source protected
_doSave( array $data null , array $options array() )
Сохраняет данные модели (основываясь на белом списке, если он предоставлен) в базе данных. По умолчанию валидация происходит до сохранения.
Параметры
- массив
$dataнеобязательно null - Данные для сохранения.
- массив
$optionsнеобязательно array() -
может содержать следующие ключи:
- validate: Установить в true/false для включения/выключения валидации.
- fieldList: Массив полей, которые вы хотите разрешить для сохранения.
- callbacks: Установить в false для отключения обратных вызовов. Использование 'before' или 'after' включит только эти обратные вызовы.
-
counterCache: Логическое значение для управления обновлением счетчиков (если таковые имеются)
Возвращает
смешанный типПри успехе Model::$data, если оно не пусто, или true, false при ошибке
Выбрасывает
PDOExceptionСсылка
http://book.cakephp.org/2.0/en/models/saving-your-data.html_filterResults()source protected
_filterResults( array $results , boolean $primary true )
Пропускает результаты запроса через методы послеОпределения модели и поведения.
Параметры
- массив
$results - Результаты для фильтрации
- логическое значение
$primaryнеобязательно true - Если это результаты основной модели (результаты из модели, где была выполнена операция поиска)
Возвращает
массивНабор отфильтрованных результатов
Вызывает
Model.afterFind $this, массив($results, $primary)_findAll()source protected
_findAll( string $state , array $query , array $results array() )
Обрабатывает логику фильтрации до/после для операций find('all'). Вызывается только методом Model::find().
Параметры
- строка
$state - Либо "before", либо "after"
- массив
$query - Запрос.
- массив
$resultsнеобязательно array() - Результаты.
Возвращает
массивСм. также
Model::find()_findCount()source protected
_findCount( string $state , array $query , array $results array() )
Обрабатывает логику фильтрации до/после для операций find('count'). Вызывается только методом Model::find().
Параметры
- строка
$state - Либо "before", либо "after"
- массив
$query - Запрос.
- массив
$resultsнеобязательно array() - Результаты.
Возвращает
целое числоКоличество найденных записей, или false
См. также
Model::find()_findFirst()source protected
_findFirst( string $state , array $query , array $results array() )
Обрабатывает логику фильтрации до/после для операций find('first'). Вызывается только методом Model::find().
Параметры
- строка
$state - Либо "before", либо "after"
- массив
$query - Запрос.
- массив
$resultsнеобязательно array() - Результаты.
Возвращает
массивСм. также
Model::find()_findList()source protected
_findList( string $state , array $query , array $results array() )
Обрабатывает логику фильтрации до/после для операций find('list'). Вызывается только методом Model::find().
Параметры
- строка
$state - Либо "before", либо "after"
- массив
$query - Запрос.
- массив
$resultsнеобязательно array() - Результаты.
Возвращает
массивКлюч/значение пар первичных ключей/значений поля отображения всех найденных записей
См. также
Model::find()_findNeighbors()source protected
_findNeighbors( string $state , array $query , array $results array() )
Определяет значение предыдущего поля, затем использует логику для поиска записей «обёртки» и возвращает их.
Параметры
- строка
$state - Либо "before", либо "after"
- массив
$query - Запрос.
- массив
$resultsнеобязательно array() - Результаты.
Возвращает
массив_findThreaded()source protected
_findThreaded( string $state , array $query , array $results array() )
В случае неоднозначных результатов (несколько результатов верхнего уровня с разными parent_id) результаты верхнего уровня с разными parent_id от первого результата будут отброшены
Параметры
- строка
$state - Либо "before", либо "after".
- массив
$query - Запрос.
- массив
$resultsнеобязательно array() - Результаты.
Возвращает
массивРезультаты в виде ветки
_generateAssociation()source protected
_generateAssociation( string $type , string $assocKey )
Создать ассоциацию на основе массива из строки.
Параметры
- строка
$type - 'belongsTo', 'hasOne', 'hasMany', 'hasAndBelongsToMany'
- строка
$assocKey - Ключ ассоциации.
_isUUIDField()source protected
_isUUIDField( string $field )
Проверить, является ли переданное поле UUID-полем
Параметры
- строка
$field - поле для проверки
Возвращает
логическое значение_normalizeXmlData()source protected
_normalizeXmlData( array $xml )
Нормализовать Xml::toArray() для использования в Model::save()
Параметры
- массив
$xml - XML в виде массива
Возвращает
массив_prepareUpdateFields()source protected
_prepareUpdateFields( array $data )
Вспомогательный метод для Model::updateCounterCache(). Проверяет поля, которые будут обновлены, на
Параметры
- массив
$data - Поля записи, которые будут обновлены
Возвращает
массивВозвращает обновлённые значения внешних ключей, а также ключ «old» с содержащими старые значения, или пустой массив, если внешние ключи не обновляются.
_readDataSource()source protected
_readDataSource( string $type , array $query )
Чтение из источника данных
Model::_readDataSource() используется всеми вызовами find() для чтения из источника данных и может быть перегружен для кэширования вызовов источника данных.
protected function _readDataSource($type, $query) {
$cacheName = md5(json_encode($query) . json_encode($this->hasOne) . json_encode($this->belongsTo));
$cache = Cache::read($cacheName, 'cache-config-name');
if ($cache !== false) {
return $cache;
}
$results = parent::_readDataSource($type, $query);
Cache::write($cacheName, $results, 'cache-config-name');
return $results;
} Параметры
- строка
$type - Тип операции поиска (все / первый / количество / соседи / список / потоковый)
- массив
$query - Поля параметров (условия / поля / соединения / лимит / смещение / порядок / страница / группа / обратные вызовы)
Возвращаемое значение
массив_saveMulti()source protected
_saveMulti( array $joined , integer|string $id , DataSource $db )
Сохраняет данные модели hasAndBelongsToMany в базе данных.
Параметры
- массив
$joined - Данные для сохранения
- целое число/строка
$id - ID записи в этой модели
-
DataSource$db - Экземпляр источника данных.
_setAliasData()source protected
_setAliasData( array $data )
Перемещение значений в псевдоним
Параметры
- массив
$data - Данные.
Возвращаемое значение
массивafterDelete()source public
afterDelete( )
Вызывается после каждой операции удаления.
Ссылка
http://book.cakephp.org/2.0/ru/models/callback-methods.html#afterdeleteafterFind()source public
afterFind( mixed $results , boolean $primary false )
Вызывается после каждой операции поиска. Может использоваться для изменения любых результатов, возвращаемых find(). Значение возврата должно быть (измененными) результатами.
Параметры
- смешанное
$results - Результаты операции поиска
- логическое значение
$primaryнеобязательно false - Является ли эта модель запрошенной непосредственно (или запрошенной как ассоциация)
Возвращаемое значение
смешанноеРезультат операции поиска
Ссылка
http://book.cakephp.org/2.0/ru/models/callback-methods.html#afterfindafterSave()source public
afterSave( boolean $created , array $options array() )
Вызывается после каждой успешной операции сохранения.
Параметры
- логическое значение
$created - Истина, если это сохранение создало новую запись
- массив
$optionsнеобязательно массив() - Параметры, переданные из Model::save().
Ссылка
http://book.cakephp.org/2.0/ru/models/callback-methods.html#aftersaveСм. также
Model::save()beforeDelete()source public
beforeDelete( boolean $cascade true )
Вызывается перед каждой операцией удаления.
Параметры
- логическое значение
$cascadeнеобязательно true - Если истинно, записи, зависящие от этой записи, также будут удалены
Возвращаемое значение
логическое значениеИстина, если операция должна продолжаться, ложь, если ее следует прервать
Ссылка
http://book.cakephp.org/2.0/ru/models/callback-methods.html#beforedeletebeforeFind()source public
beforeFind( array $query )
Вызывается перед каждой операцией поиска. Возвращает ложь, если вы хотите остановить вызов поиска, в противном случае возвращает (измененные) данные запроса.
Параметры
- массив
$query - Данные, используемые для выполнения этого запроса, т.е. условия, порядок и т.д.
Возвращаемое значение
смешанноеистина, если операция должна продолжаться, ложь, если ее следует прервать; или измененный $query для продолжения с новым $query
Ссылка
http://book.cakephp.org/2.0/ru/models/callback-methods.html#beforefindbeforeSave()source public
beforeSave( array $options array() )
Вызывается перед каждой операцией сохранения после валидации. Возвращение значения, отличного от true, останавливает сохранение.
Параметры
- массив
$optionsнеобязательно массив() - Параметры, переданные из Model::save().
Возвращаемое значение
логическое значениеИстина, если операция должна продолжаться, ложь, если ее следует прервать
Ссылка
http://book.cakephp.org/2.0/ru/models/callback-methods.html#beforesaveСм. также
Model::save()beforeValidate()source public
beforeValidate( array $options array() )
Вызывается во время операций валидации до валидации. Обратите внимание, что пользовательские правила валидации могут быть определены в $validate.
Параметры
- массив
$optionsнеобязательно массив() - Параметры, переданные из Model::save().
Возвращаемое значение
логическое значениеИстина, если операция валидации должна продолжаться, ложь для прерывания
Ссылка
http://book.cakephp.org/2.0/ru/models/callback-methods.html#beforevalidateСм. также
Model::save()bindModel()source public
bindModel( array $params , boolean $reset true )
Связывание ассоциаций моделей на лету.
Если $reset ложно, ассоциация не будет сброшена к исходным значениям, определенным в модели
Пример: Добавление нового связывания hasOne в модель Profile, не определенного в исходном коде модели:
$this->User->bindModel(array('hasOne' => array('Profile')));
Связывания, которые не являются постоянными, будут сброшены при следующем вызове Model::find() для этой модели.
Параметры
- массив
$params - Набор связываний (индексированных по типу связывания)
- логическое значение
$resetнеобязательно истина - Установите в ложь, чтобы сделать связывание постоянным
Возвращаемое значение
логическое значениеУспех
Ссылка
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необязательно 'первый' - Тип операции поиска (все / первый / количество / соседи / список / потоковый)
- массив
$queryнеобязательно массив() - Поля параметров (условия / поля / соединения / лимит / смещение / порядок / страница / группа / обратные вызовы)
Возвращаемое значение
массив|nullМассив запроса или null, если его невозможно создать по каким-либо причинам
Триггеры
Model.beforeFind $this, массив($query)См. также
Model::find()clear()source public
clear( )
Эта функция — удобная обертка для создания (ложь) и, как следует из названия, очищает id, данные и ошибки валидации.
Возвращаемое значение
логическое значениеВсегда истинно при успехе
См. также
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 и/или значений по умолчанию из базы данных
Ссылка
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 )
Деконструирует сложный тип данных (массив или объект) в значение одного поля.
Параметры
- string
$field - Имя поля, которое нужно деконструировать
- array|object
$data - Массив или объект, который нужно деконструировать в поле
Возвращает
mixedРезультирующие данные, которые должны быть назначены полю
delete()source public
delete( integer|string $id null , boolean $cascade true )
Удаляет запись для заданного ID. Если ID не указан, используется текущий ID. Возвращает true при успехе.
Параметры
- integer|string
$idнеобязательно null - ID записи для удаления
- boolean
$cascadeнеобязательно true - Установите в true, чтобы удалить записи, зависящие от этой записи
Возвращает
booleanTrue при успехе
Триггеры
Model.beforeDelete $this, array($cascade)Model.afterDelete $this
Ссылка
http://book.cakephp.org/2.0/ru/models/deleting-data.htmldeleteAll()source public
deleteAll( mixed $conditions , boolean $cascade true , boolean $callbacks false )
Удаляет несколько записей модели на основе набора условий.
Параметры
- 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 существует.
Если $id не передан, он вызывает Model::getID() для получения текущего ID записи, а затем выполняет Model::find('count') на текущем источнике данных, чтобы определить существование записи в постоянном хранилище.
Параметры
- integer|string
$idнеобязательно null - ID записи для проверки существования
Возвращает
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Объект DataSource
getEventManager()source public
getEventManager( )
Возвращает экземпляр менеджера CakeEventManager, обрабатывающего любые обратные вызовы. Вы можете использовать этот экземпляр для регистрации новых слушателей или обратных вызовов к событиям модели, или для создания собственных событий и их запуска по желанию.
Возвращаемое значение
CakeEventManagergetID()source public
getID( integer $list 0 )
Возвращает ID текущей записи.
Параметры
- целое число
$listнеобязательно 0 - Индекс, на котором находится составной ID.
Возвращаемое значение
mixedID текущей записи, false, если ID отсутствует
getInsertID()source public
getInsertID( )
Возвращает ID последней записи, вставленной этой моделью.
Возвращаемое значение
mixedID последней вставленной записи
getLastInsertID()source public
getLastInsertID( )
Возвращает ID последней записи, вставленной этой моделью.
Возвращаемое значение
mixedID последней вставленной записи
getNumRows()source public
getNumRows( )
Возвращает количество строк, возвращенных последним запросом.
Возвращаемое значение
integerКоличество строк
getVirtualField()source public
getVirtualField( string $field null )
Возвращает выражение для виртуального поля модели.
Параметры
- строка
$fieldнеобязательно null - Имя поля для поиска
Возвращаемое значение
mixedЕсли $field — строка, выражение, связанное с виртуальным полем $field. Если $field равен null, возвращает массив всех виртуальных полей модели или false, если такие поля отсутствуют.
hasAny()source public
hasAny( array $conditions null )
Возвращает true, если существует запись, удовлетворяющая заданным условиям.
Параметры
- массив
$conditionsнеобязательно null - Массив SQL-условий
Возвращаемое значение
booleanTrue, если такая запись существует
hasField()source public
hasField( string|array $name , boolean $checkVirtual false )
Возвращает true, если указанное поле существует в таблице базы данных модели.
Параметры
- строка|массив
$name - Имя поля для поиска или массив имён
- булево
$checkVirtualнеобязательно false - проверяет, объявлено ли поле как виртуальное
Возвращаемое значение
mixedЕсли $name — строка, возвращает boolean, указывающий, существует ли поле. Если $name — массив имён полей, возвращает первое существующее поле или false, если такие поля отсутствуют.
hasMethod()source public
hasMethod( string $method )
Проверяет, доступен ли метод в модели. Проверка будет проводиться как для собственных методов модели, так и для наследовавшихся, а также для методов, доступных через behaviours.
Параметры
- строка
$method - Метод, который должен быть вызван.
Возвращаемое значение
booleanTrue, если метод доступен.
implementedEvents()source public
implementedEvents( )
Возвращает список всех событий, которые будут срабатывать в модели в течение её жизненного цикла. Вы можете переопределить эту функцию, чтобы добавить свои собственные обратные вызовы слушателей.
Возвращаемое значение
arrayРеализация
CakeEventListener::implementedEvents() invalidFields()source public
invalidFields( array|string $options array() )
Возвращает массив полей, которые не прошли валидацию в текущей модели.
Кроме того, он заполняет свойство validationErrors модели тем же массивом.
Параметры
- массив|строка
$optionsнеобязательно array() - Необязательный массив пользовательских параметров, которые будут доступны в обратном вызове beforeValidate
Возвращаемое значение
arrayМассив невалидных полей и сообщений об ошибках
См. также
Model::validates()invalidate()source public
invalidate( string $field , mixed $value true )
Отмечает поле как невалидное, необязательно задавая имя правила валидации (в случае нескольких валидаций поля), которое было нарушено.
Параметры
- строка
$field - Имя поля, которое нужно отметить как невалидное
- смешанный
$valueнеобязательно true Имя правила валидации, которое не прошло, или сообщение об ошибке, которое будет возвращено. Если ключ валидации не указан, по умолчанию используется true.
isForeignKey()source public
isForeignKey( string $field )
Возвращает true, если указанное имя поля является внешним ключом в этой модели.
Параметры
- строка
$field - Возвращает true, если входная строка заканчивается на "_id"
Возвращаемое значение
booleanTrue, если поле является внешним ключом, указанным в массиве belongsTo.
isUnique()source public
isUnique( array $fields , boolean|array $or true )
Возвращает false, если какие-либо переданные поля совпадают с какими-либо (по умолчанию, со всеми, если $or = false) их соответствующими значениями.
Может использоваться как метод валидации. При использовании в качестве метода валидации параметр $or содержит массив полей, подлежащих валидации.
Параметры
- массив
$fields - Пары поле/значение для поиска (если значения не указаны, они берутся из $this->data)
- булево|массив
$orнеобязательно true - Если false, все указанные поля должны совпадать, чтобы получить значение false
Возвращаемое значение
booleanFalse, если найдены записи, соответствующие любым полям
isVirtualField()source public
isVirtualField( string $field )
Возвращает true, если указанное поле является виртуальным полем модели.
Параметры
- строка
$field - Имя поля для поиска
Возвращаемое значение
booleanУказывает, существует ли поле как виртуальное поле модели.
joinModel()source public
joinModel( string|array $assoc , array $keys array() )
Получает имя и поля, которые будут использоваться моделью соединения. Это позволяет указать поля соединения в определении ассоциации.
Параметры
- строка|массив
$assoc - Модель, которая должна быть присоединена
- массив
$keysнеобязательно array() - Любые ключи соединения, которые необходимо объединить с запрошенными ключами
Возвращаемое значение
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-й параметр: либо логическое значение для управления кэшированием запросов, либо массив параметров для использования с параметрами подготовленных запросов.
- 3-й параметр: если 2-й аргумент указан, логический флаг для включения/выключения кэширования запросов.
Параметры
- строка
$sql - SQL-запрос
Возвращает
mixedМассив набора результатов или логическое значение, указывающее на успех/неудачу в зависимости от выполненного запроса
Ссылка
http://book.cakephp.org/2.0/ru/models/retrieving-your-data.html#model-queryread()source public
read( string|array $fields null , integer|string $id null )
Возвращает список полей из базы данных и устанавливает текущие данные модели (Model::$data) с найденной записью.
Параметры
- строка|массив
$fieldsнеобязательно null - Строка имени одного поля или массив имён полей.
- целое число|строка
$idнеобязательно null - Идентификатор записи для чтения
Возвращает
массивМассив полей базы данных или ложь, если не найдено
Ссылка
http://book.cakephp.org/2.0/ru/models/retrieving-your-data.html#model-readresetAssociations()source public
resetAssociations( )
Сбрасывает массивы ассоциаций для модели до первоначально определённых в модели. Обычно вызывается в конце каждого вызова Model::find()
Возвращает
логическое значениеУспех
save()source public
save( array $data null , boolean|array $validate true , array $fieldList array() )
Сохраняет данные модели (в соответствии с белым списком, если он предоставлен) в базе данных. По умолчанию валидация происходит перед сохранением. Метод-прослойка для _doSave() с обработкой транзакций.
Параметры
- массив
$dataнеобязательно null - Данные для сохранения.
- логическое значение|массив
$validateнеобязательно true -
Либо логическое значение, либо массив. Если логическое значение, указывает, нужно ли выполнять валидацию перед сохранением. Если массив, может содержать следующие ключи:
- atomic: Если true (по умолчанию), попытается сохранить запись в одной транзакции.
- validate: Установлено в true/false для включения или выключения валидации.
- fieldList: Массив полей, которые вы хотите разрешить для сохранения.
- callbacks: Установлено в false для отключения обратных вызовов. Использование 'before' или 'after' включит только эти обратные вызовы.
-
counterCache: Логическое значение для управления обновлением счётчиков (если таковые имеются)
- массив
$fieldListнеобязательно array() - Список полей, которые разрешено сохранить
Возвращает
смешанный типПри успехе Model::$data, если оно не пустое, или true; false при ошибке
Выбрасывает
ИсключениеPDOException
Триггеры
Model.beforeSave $this, массив($options)Model.afterSave $this, массив($created, $options)
Ссылка
http://book.cakephp.org/2.0/ru/models/saving-your-data.htmlsaveAll()source public
saveAll( array $data array() , array $options array() )
Метод-прослойка обратной совместимости для: saveMany(), validateMany(), saveAssociated() и validateAssociated()
Сохраняет несколько отдельных записей для одной модели; Также работает с одной записью, а также со всеми связанными записями.
Параметры
-
validate: Установите в false, чтобы отключить валидацию; true, чтобы валидировать каждую запись перед сохранением; 'first' чтобы валидировать все записи перед сохранением любой (по умолчанию); или 'only' чтобы только валидировать записи, но не сохранять их. -
atomic: Если true (по умолчанию), попытается сохранить все записи в одной транзакции. Должно быть установлено в false, если база данных/таблица не поддерживают транзакции. -
fieldList: Эквивалентно параметру $fieldList в Model::save(). Это должен быть ассоциативный массив с именем модели в качестве ключа и массивом полей в качестве значения. Пример:array( 'SomeModel' => array('field'), 'AssociatedModel' => array('field', 'otherfield') ) -
deep: См. saveMany/saveAssociated -
callbacks: См. Model::save() -
counterCache: См. Model::save()
Параметры
- массив
$dataнеобязательно array() Данные записи для сохранения. Это может быть либо массив с числовыми индексами (для сохранения нескольких записей одного типа), либо массив, индексированный именем ассоциации.
- массив
$optionsнеобязательно array() - Параметры для использования при сохранении данных записи, см. $options выше.
Возвращает
смешанный типЕсли атомарно: True при успехе, или false при ошибке. В противном случае: массив, похожий на массив $data, переданный, но значения установлены в true/false в зависимости от того, сохранилась ли каждая запись успешно.
Ссылка
http://book.cakephp.org/2.0/ru/models/saving-your-data.html#model-saveassociated-array-data-null-array-options-arrayhttp://book.cakephp.org/2.0/ru/models/saving-your-data.html#model-saveall-array-data-null-array-options-array
saveAssociated()source public
saveAssociated( array $data null , array $options array() )
Сохраняет одну запись, а также все связанные с ней напрямую записи.
Параметры
-
validate: Установите вfalse, чтобы отключить валидацию; вtrue, чтобы валидировать каждую запись перед сохранением; в 'first' чтобы валидировать все записи перед сохранением любой (по умолчанию), -
atomic: Если true (по умолчанию), попытается сохранить все записи в одной транзакции. Должно быть установлено в false, если база данных/таблица не поддерживают транзакции. -
fieldList: Эквивалентно параметру $fieldList в Model::save(). Это должен быть ассоциативный массив с именем модели в качестве ключа и массивом полей в качестве значения. Пример:array( 'SomeModel' => array('field'), 'AssociatedModel' => array('field', 'otherfield') ) -
deep: Если установлено в true, сохраняются не только непосредственно связанные данные, но и данные, вложенные на более глубоких уровнях ассоциаций. -
callbacks: См. Model::save() -
counterCache: См. Model::save()
Параметры
- массив
$dataнеобязательно null - Данные записи для сохранения. Это должен быть массив, индексированный именем ассоциации.
- массив
$optionsнеобязательно array() - Параметры для использования при сохранении данных записи, см. $options выше.
Возвращает
смешанный типЕсли атомарно: True при успехе, или false при ошибке. В противном случае: массив, похожий на массив $data, переданный, но значения установлены в true/false в зависимости от того, сохранилась ли каждая запись успешно.
Выбрасывает
PDOExceptionСсылка
http://book.cakephp.org/2.0/ru/models/saving-your-data.html#model-saveassociated-array-data-null-array-options-arraysaveField()source public
saveField( string $name , mixed $value , boolean|array $validate false )
Сохраняет значение одного поля в базе данных на основе текущего идентификатора модели.
Параметры
- строка
$name - Имя поля таблицы
- смешанный тип
$value - Значение поля
- логическое значение|массив
$validateнеобязательно false Либо логическое значение, либо массив. Если логическое значение, указывает, нужно ли выполнять валидацию перед сохранением. Если массив, позволяет управлять параметрами 'validate', 'callbacks' и 'counterCache'. См. Model::save() для подробностей каждого параметра.
Возвращает
логическое значение|массивСм. 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()
Параметры
- массив
$dataнеобязательно null - Данные записи для сохранения. Это должен быть массив с числовыми индексами.
- массив
$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 => keys(type, null, default, key, length, extra)
Параметры
- 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 в качестве его значения.)
Параметры
- строка|массив|SimpleXmlElement|DomNode
$one - Массив или строка данных
- строка
$twoнеобязательно null - Строковое значение для альтернативного метода ввода.
Возвращает
array|nullДанные со всеми ключами и значениями $one, в противном случае null.
Ссылка
http://book.cakephp.org/2.0/ru/models/saving-your-data.htmlsetDataSource()source public
setDataSource( string $dataSource null )
Устанавливает источник данных, к которому привязана эта модель.
Параметры
- строка
$dataSourceнеобязательно null - Имя источника данных, как определено в app/Config/database.php
Исключения
MissingConnectionExceptionsetInsertID()source public
setInsertID( integer|string $id )
Устанавливает идентификатор последней сохранённой записи этой моделью.
Параметры
- целое число|строка
$id - Идентификатор последней вставленной записи
setSource()source public
setSource( string $tableName )
Устанавливает пользовательскую таблицу для вашего класса модели. Используется вашим контроллером для выбора таблицы базы данных.
Параметры
- строка
$tableName - Имя пользовательской таблицы
Исключения
MissingTableExceptionесли таблица базы данных $tableName не найдена в источнике данных
unbindModel()source public
unbindModel( array $params , boolean $reset true )
Временно отключает ассоциации.
Если $reset равен false, ассоциация не будет сброшена к исходным значениям, определённым в модели.
Пример: Отключение связанной модели Запроса поддержки, чтобы временно уменьшить нагрузку на модель Пользователь:
$this->User->unbindModel(array('hasMany' => array('SupportRequest'))); Или альтернативно: $this->User->unbindModel(array('hasMany' => 'SupportRequest'));
Отключённые модели, которые не сделаны постоянными, будут сброшены при следующем вызове Model::find()
Параметры
- массив
$params - Набор связей для отключения (индексируется по типу связи)
- boolean
$resetнеобязательно true - Установите в false, чтобы сделать отключение постоянным
Возвращает
booleanУспех
Ссылка
http://book.cakephp.org/2.0/ru/models/associations-linking-models-together.html#creating-and-destroying-associations-on-the-flyupdateAll()source public
updateAll( array $fields , mixed $conditions true )
Обновляет несколько записей модели на основе набора условий.
Параметры
- массив
$fields Набор полей и значений, индексированных по полям. Поля обрабатываются как фрагменты SQL, для вставки буквальных значений вручную экранируйте ваши данные.
- смешанный
$conditionsнеобязательно true - Условие для соответствия, true для всех записей
Возвращает
booleanTrue при успехе, false при неудаче
Ссылка
http://book.cakephp.org/2.0/ru/models/saving-your-data.html#model-updateall-array-fields-mixed-conditionsupdateCounterCache()source public
updateCounterCache( array $keys array() , boolean $created false )
Обновляет кэш счётчика для ассоциаций belongsTo после операции сохранения или удаления.
Параметры
- массив
$keysнеобязательно array() - Необязательные данные внешнего ключа, по умолчанию информация $this->data
- boolean
$createdнеобязательно false True, если была создана новая запись, в противном случае обновляются только ассоциации с определённым 'counterScope'
validateAssociated()source public
validateAssociated( array $data , array $options array() )
Валидирует одну запись, а также все её непосредственно связанные записи.
Параметры
-
atomic: Если true (по умолчанию), возвращает boolean. Если false, возвращает массив. -
fieldList: Эквивалентно параметру $fieldList в Model::save() -
deep: Если установлено в true, не только непосредственно связанные данные, но и вложенные связанные данные также валидируются.
Предупреждение: Этот метод потенциально может изменить переданный аргумент $data. Если вы не хотите, чтобы это происходило, сделайте копию $data перед тем, как передать его этому методу.
Параметры
- массив
$data - Данные записи для валидации. Это должен быть массив, индексированный по имени ассоциации.
- массив
$optionsнеобязательно array() - Параметры для использования при валидации данных записи (см. выше). См. также $options в validates().
Возвращает
array|booleanЕсли атомарно: True при успехе или false при неудаче. В противном случае: массив, подобный массиву $data, переданному, но значения установлены в true/false в зависимости от того, была ли каждая запись успешно валидирована.
validateMany()source public
validateMany( array $data , array $options array() )
Проверяет несколько отдельных записей для одной модели
Параметры
-
atomic: Если true (по умолчанию), возвращает boolean. Если false, возвращает массив. -
fieldList: Эквивалентно параметру $fieldList в Model::save() -
deep: Если установлено в true, все связанные данные также будут проверены.
Предупреждение: Этот метод может потенциально изменить переданный аргумент $data. Если вы этого не хотите, сделайте копию $data перед передачей его в этот метод
Параметры
- массив
$data - $data Данные записи для проверки. Должен быть массивом с числовыми индексами
- массив
$optionsнеобязательно array() - Параметры для использования при проверке данных записи (см. выше), см. также $options в validates().
Возвращает
boolean|arrayЕсли атомарно: True при успехе, или false при ошибке. Иначе: массив, похожий на переданный массив $data, но значения установлены в true/false в зависимости от того, прошла ли проверка каждой записи успешно.
validates()source public
validates( array $options array() )
Возвращает true, если все поля проходят проверку. Также будет проверять ассоциации hasAndBelongsToMany, которые используют ключ 'with'. Поскольку _saveMulti не способен завершить операцию сохранения.
Будет проверять текущие данные. Используйте Model::set() или Model::create() для установки активных данных.
Параметры
- массив
$optionsнеобязательно array() - Необязательный массив пользовательских параметров, которые должны быть доступны в обратном вызове перед проверкой
Возвращает
booleanTrue, если нет ошибок
validator()source public
validator( ModelValidator $instance null )
Возвращает экземпляр валидатора модели для этого класса
Параметры
-
ModelValidator$instanceнеобязательно null Экземпляр валидатора модели. Если null, будет создан новый экземпляр ModelValidator с использованием текущего объекта модели
Возвращает
ModelValidatorМетоды, унаследованные от Object
_mergeVars()source protected
_mergeVars( array $properties , string $class , boolean $normalize true )
Объединяет $property этого объекта со свойством в определении $class. Значение этого класса для свойства будет объединено поверх $class''.
Это обеспечивает некоторую DRY-магию CakePHP. Если вы хотите отключить ее, переопределите этот метод как пустую функцию.
Параметры
- массив
$properties - Имя свойств для объединения.
- строка
$class - Класс для объединения свойства с.
- булево
$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 при успехе/неуспехе, или содержимое отображенного действия, если в $extra установлен 'return'.
toString()source public
toString( )
Преобразование объекта в строку. Каждый класс может переопределить этот метод по мере необходимости.
Возвращает
строкаИмя этого класса
Подробное описание свойств
© 2005–2016 The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
http://api.cakephp.org/2.8/class-Permission.html