Spec-Zone.ru › CakePHP 2.7

Класс Permission

Разрешения, связывающие ARO с ACO

Объект
Extended by Модель implements CakeEventListener
Extended by AppModel
Extended by Разрешение
Пакет: Cake\Модель
Авторские права: Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
Лицензия: MIT License
Расположение Cake/Model/Permission.php

Подробное описание методов

__constructsource public

__construct( )

Конструктор, используемый для указания этой модели на использование базы данных, настроенной для ACL

Переопределяет

Model::__construct()

allowsource public

allow( string $aro , string $aco , string $actions '*' , integer $value 1 )

Разрешить $aro доступ к действиям $actions в $aco

Параметры

строка $aro
ARO Идентификатор запрашиваемого объекта.
строка $aco
ACO Идентификатор контролируемого объекта.
строка $actions необязательно '*'
Действие (по умолчанию *) Неверные разрешения приведут к исключению
целое число $value необязательно 1
Значение для указания типа доступа (1 для предоставления доступа, -1 для отказа, 0 для наследования)

Возвращает

boolean
Успех

Выбрасывает

AclException
при неверном ключе разрешения.

checksource public

check( string $aro , string $aco , string $action '*' )

Проверяет, имеет ли данный $aro доступ к действию $action в $aco

Параметры

строка $aro
ARO Идентификатор запрашиваемого объекта.
строка $aco
ACO Идентификатор контролируемого объекта.
строка $action необязательно '*'
Действие (по умолчанию *)

Возвращает

boolean
Успех (true, если ARO имеет доступ к действию в ACO, false в противном случае)

getAclLinksource public

getAclLink( string $aro , string $aco )

Получить массив ссылок управления доступом между заданным Aro и Aco

Параметры

строка $aro
ARO Идентификатор запрашиваемого объекта.
строка $aco
ACO Идентификатор контролируемого объекта.

Возвращает

array
Индексированный массив с: 'aro', 'aco' и 'link'

getAcoKeyssource public

getAcoKeys( array $keys )

Получить ключи типа crud

Параметры

массив $keys
Схема разрешений

Возвращает

array
ключи разрешений

Наследованные методы из Модель

__callsource public

__call( string $method , array $params )

Обрабатывает вызовы пользовательских методов, таких как findBy<field> для моделей БД и пользовательские вызовы RPC для удалённых источников данных.

Параметры

строка $method
Имя вызываемого метода.
массив $params
Параметры метода.

Возвращает

mixed
Результат вызываемого метода

__getsource public

__get( string $name )

Возвращает значение запрошенной переменной, если она может быть установлена с помощью __isset()

Параметры

строка $name
запрошенная переменная для получения её значения или ссылки

Возвращает

mixed
значение запрошенной переменной, если она установлена

__issetsource public

__isset( string $name )

Обрабатывает леничную загрузку моделей ассоциаций, просматривая массивы ассоциаций в поиске запрошенной переменной.

Параметры

строка $name
переменная, проверяемая на существование в классе

Возвращает

boolean
true, если переменная существует (если это не загруженная модель ассоциации, она будет создана), false в противном случае

_addToWhiteListsource protected

_addToWhiteList( string $key , array $options )

Вспомогательный метод для saveAll() и т.п., для добавления внешнего ключа в список полей.

Параметры

строка $key
имя поля, которое нужно добавить в список
массив $options
Список параметров

Возвращает

array
параметры

_clearCachesource protected

_clearCache( string $type null )

Очищает кэш для этой модели.

Параметры

строка $type необязательно null
Если null, это удаляет кешированные представления, если Cache.check имеет значение true. Будет использоваться для разрешения удаления кеша запросов тоже.

Возвращает

mixed
True при удалении, null в противном случае

_collectForeignKeyssource protected

_collectForeignKeys( string $type 'belongsTo' )

Сбор внешних ключей из ассоциаций.

Параметры

строка $type необязательно 'belongsTo'
Тип ассоциации.

Возвращает

array
массив

_constructLinkedModelsource protected

_constructLinkedModel( string $assoc , string $className null , string $plugin null )

Защищенный вспомогательный метод для создания связанных моделей заданного класса.

Параметры

строка $assoc
Имя ассоциации
строка $className необязательно null
Имя класса
строка $plugin необязательно null
Имя плагина, где находится $className. Примеры: public $hasMany = array('Assoc' => array('className' => 'ModelName')); использование: $this->Assoc->modelMethods(); public $hasMany = array('ModelName'); использование: $this->ModelName->modelMethods();

_createLinkssource protected

_createLinks( )

Создать набор ассоциаций.

_deleteDependentsource protected

_deleteDependent( string $id , boolean $cascade )

Каскадное удаление моделей через связанные записи hasMany и hasOne.

Параметры

строка $id
ID удалённой записи
boolean $cascade
Установить в true для удаления записей, зависящих от этой записи

_deleteLinkssource protected

_deleteLinks( string $id )

Каскадное удаление моделей через ключи объединения HABTM.

Параметры

строка $id
ID удалённой записи
END_OF_DOCUMENT_MARKER

_doSavesource protected

_doSave( array $data null , array $options array() )

Сохраняет данные модели (в соответствии с белым списком, если он предоставлен) в базе данных. По умолчанию валидация выполняется перед сохранением.

Параметры

массив $data необязательно null
Данные для сохранения.
массив $options необязательно array()
может содержать следующие ключи: - validate: Установить в true/false для включения/выключения валидации. - fieldList: Массив полей, которые вы хотите разрешить для сохранения. - callbacks: Установить в false для отключения обратных вызовов. Использование 'before' или 'after' включит только эти обратные вызовы. - counterCache: Булево значение для управления обновлением кэшей счетчиков (если таковые имеются)

Возвращает

mixed
При успехе Model::$data, если оно не пусто, или true, false при ошибке

Выбрасывает

PDOException
PDOException

Ссылка

http://book.cakephp.org/2.0/ru/models/saving-your-data.html

_filterResultssource protected

_filterResults( array $results , boolean $primary true )

Пропускает результаты запроса через методы модели и поведения afterFind().

Параметры

массив $results
Результаты для фильтрации
логическое значение $primary необязательно true
Если это результаты основной модели (результаты из модели, где была выполнена операция поиска)

Возвращает

array
Набор отфильтрованных результатов

Вызывает

Model.afterFind $this, массив($results, $primary)

_findAllsource protected

_findAll( string $state , array $query , array $results array() )

Обрабатывает логику фильтрации before/after для операций find('all'). Вызывается только методом Model::find().

Параметры

строка $state
Либо "before", либо "after"
массив $query
Запрос.
массив $results необязательно array()
Результаты.

Возвращает

array
массив

См. также

Model::find()

_findCountsource protected

_findCount( string $state , array $query , array $results array() )

Обрабатывает логику фильтрации before/after для операций find('count'). Вызывается только методом Model::find().

Параметры

строка $state
Либо "before", либо "after"
массив $query
Запрос.
массив $results необязательно array()
Результаты.

Возвращает

integer
Количество найденных записей или false

См. также

Model::find()

_findFirstsource protected

_findFirst( string $state , array $query , array $results array() )

Обрабатывает логику фильтрации before/after для операций find('first'). Вызывается только методом Model::find().

Параметры

строка $state
Либо "before", либо "after"
массив $query
Запрос.
массив $results необязательно array()
Результаты.

Возвращает

array
массив

См. также

Model::find()

_findListsource protected

_findList( string $state , array $query , array $results array() )

Обрабатывает логику фильтрации before/after для операций find('list'). Вызывается только методом Model::find().

Параметры

строка $state
Либо "before", либо "after"
массив $query
Запрос.
массив $results необязательно array()
Результаты.

Возвращает

array
Ключи/значения первичных ключей/значений поля отображения всех найденных записей

См. также

Model::find()

_findNeighborssource protected

_findNeighbors( string $state , array $query , array $results array() )

Определяет предыдущее значение поля, затем использует логику для поиска "оборачивающих" строк и возвращает их.

Параметры

строка $state
Либо "before", либо "after"
массив $query
Запрос.
массив $results необязательно array()
Результаты.

Возвращает

array
массив

_findThreadedsource protected

_findThreaded( string $state , array $query , array $results array() )

В случае неоднозначных результатов (несколько результатов верхнего уровня с различными parent_id) результаты верхнего уровня с различными parent_id от первого результата будут удалены

Параметры

строка $state
Либо "before", либо "after".
массив $query
Запрос.
массив $results необязательно array()
Результаты.

Возвращает

array
Результаты с ветвлением

_generateAssociationsource protected

_generateAssociation( string $type , string $assocKey )

Создает ассоциацию на основе массива из строки.

Параметры

строка $type
'belongsTo', 'hasOne', 'hasMany', 'hasAndBelongsToMany'
строка $assocKey
Ключ ассоциации.

_isUUIDFieldsource protected

_isUUIDField( string $field )

Проверяет, является ли переданное поле полем UUID.

Параметры

строка $field
поле для проверки

Возвращает

boolean
bool

_normalizeXmlDatasource protected

_normalizeXmlData( array $xml )

Нормализует Xml::toArray() для использования в Model::save()

Параметры

массив $xml
XML в виде массива

Возвращает

array
массив

_prepareUpdateFieldssource protected

_prepareUpdateFields( array $data )

Вспомогательный метод для Model::updateCounterCache(). Проверяет поля для обновления на

Параметры

массив $data
Поля записи, которые будут обновлены

Возвращает

array
Возвращает обновленные значения внешних ключей, а также ключ 'old', содержащий старые значения, или пусто, если внешние ключи не обновляются.

_readDataSourcesource protected

_readDataSource( string $type , array $query )

Чтение из источника данных

Model::_readDataSource() используется всеми вызовами find() для чтения из источника данных и может быть перегружен для кэширования вызовов источника данных.

protected function _readDataSource($type, $query) {
                $cacheName = md5(json_encode($query));
                $cache = Cache::read($cacheName, 'cache-config-name');
                if ($cache !== false) {
                        return $cache;
                }

                $results = parent::_readDataSource($type, $query);
                Cache::write($cacheName, $results, 'cache-config-name');
                return $results;
}

Параметры

строка $type
Тип операции поиска (все / первый / количество / соседи / список / ветвленный)
массив $query
Поля опций (условия / поля / соединения / ограничение / смещение / порядок / страница / группа / обратные вызовы)

Возвращает

array
массив

_saveMultisource protected

_saveMulti( array $joined , integer|string $id , DataSource $db )

Сохраняет данные модели hasAndBelongsToMany в базе данных.

Параметры

массив $joined
Данные для сохранения
целое число/строка $id
Идентификатор записи в этой модели
DataSource $db
Экземпляр источника данных.

_setAliasDatasource protected

_setAliasData( array $data )

Переместить значения в псевдоним

Параметры

массив $data
Данные.

Возвращает

array
массив

afterDeletesource public

afterDelete( )

Вызывается после каждой операции удаления.

Ссылка

http://book.cakephp.org/2.0/ru/models/callback-methods.html#afterdelete

afterFindsource public

afterFind( mixed $results , boolean $primary false )

Вызывается после каждой операции поиска. Может быть использовано для изменения любых результатов, возвращаемых find(). Значение возврата должно быть (изменёнными) результатами.

Параметры

mixed $results
Результаты операции поиска
boolean $primary необязательно false
Указывает, запрашивается ли эта модель напрямую (или в качестве ассоциации)

Возвращает

mixed
Результат операции поиска

Ссылка

http://book.cakephp.org/2.0/ru/models/callback-methods.html#afterfind

afterSavesource public

afterSave( boolean $created , array $options array() )

Вызывается после каждой успешной операции сохранения.

Параметры

boolean $created
Истина, если это сохранение создало новую запись
array $options необязательно array()
Параметры, переданные из Model::save().

См. также

Model::save()

Ссылка

http://book.cakephp.org/2.0/ru/models/callback-methods.html#aftersave

afterValidatesource public

afterValidate( )

Вызывается после проверки данных на ошибки

associationssource public

associations( )

Получить ассоциации

Возвращает

array
массив

beforeDeletesource public

beforeDelete( boolean $cascade true )

Вызывается перед каждой операцией удаления.

Параметры

boolean $cascade необязательно true
Если истинно, записи, зависящие от этой записи, также будут удалены

Возвращает

boolean
Истина, если операция должна продолжиться, ложь, если её нужно прервать

Ссылка

http://book.cakephp.org/2.0/ru/models/callback-methods.html#beforedelete

beforeFindsource public

beforeFind( array $query )

Вызывается перед каждой операцией поиска. Возвращает false, если нужно прервать вызов поиска, в противном случае возвращает (изменённые) данные запроса.

Параметры

array $query
Данные, используемые для выполнения запроса, т.е. условия, порядок и т.д.

Возвращает

mixed
true, если операция должна продолжиться, false, если её нужно прервать; или изменённые данные запроса для продолжения с новым запросом

Ссылка

http://book.cakephp.org/2.0/ru/models/callback-methods.html#beforefind

beforeSavesource public

beforeSave( array $options array() )

Вызывается перед каждой операцией сохранения после валидации. Возвращение значения, отличного от true, прерывает сохранение.

Параметры

array $options необязательно array()
Параметры, переданные из Model::save().

Возвращает

boolean
Истина, если операция должна продолжиться, ложь, если её нужно прервать

См. также

Model::save()

Ссылка

http://book.cakephp.org/2.0/ru/models/callback-methods.html#beforesave

beforeValidatesource public

beforeValidate( array $options array() )

Вызывается во время операций валидации, перед валидацией. Обратите внимание, что пользовательские правила валидации могут быть определены в $validate.

Параметры

array $options необязательно array()
Параметры, переданные из Model::save().

Возвращает

boolean
Истина, если операция валидации должна продолжиться, ложь, чтобы прервать

См. также

Model::save()

Ссылка

http://book.cakephp.org/2.0/ru/models/callback-methods.html#beforevalidate

bindModelsource public

bindModel( array $params , boolean $reset true )

Связать модель с ассоциациями на лету.

Если $reset ложно, ассоциация не будет сброшена до исходных значений, определённых в модели.

Пример: Добавить новую связь hasOne к модели Profile, не определённую в исходном коде модели:

$this->User->bindModel(array('hasOne' => array('Profile')));

Связи, которые не являются постоянными, будут сброшены при следующем вызове 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-fly

buildQuerysource public

buildQuery( string $type 'first' , array $query array() )

Создаёт массив запроса, используемый источником данных для генерации запроса для извлечения данных.

Параметры

string $type необязательно 'first'
Тип операции поиска (все / первый / количество / соседи / список / с нисходящим списком)
array $query необязательно array()
Поля параметров (условия / поля / соединения / лимит / смещение / порядок / страница / группировка / обратные вызовы)

Возвращает

array|null
Массив запроса или null, если его нельзя было создать по каким-либо причинам

См. также

Model::find()

Триггеры

Model.beforeFind $this, array($query)

clearsource public

clear( )

Эта функция — удобная обертка для создания (false) и, как следует из названия, очищает идентификатор, данные и ошибки валидации.

Возвращает

boolean
Всегда true при успехе

См. также

Model::create()

createsource public

create( boolean|array $data array() , boolean $filterKey false )

Инициализирует модель для записи новой записи, загружая значения по умолчанию для тех полей, которые не определены в $data, и очищая предыдущие ошибки валидации. Особенно полезно для сохранения данных в циклах.

Параметры

boolean|array $data необязательно array()
Необязательный массив данных для назначения модели после её создания. Если null или false, значения по умолчанию схемы не сливаются.
boolean $filterKey необязательно false
Если истинно, перезаписывает любой ввод первичного ключа пустым значением

Возвращает

array
Текущие данные Model::data; после слияния $data и/или значений по умолчанию из базы данных

Ссылка

http://book.cakephp.org/2.0/ru/models/saving-your-data.html#model-create-array-data-array

deconstructsource public

deconstruct( string $field , array|object $data )

Деконструирует сложный тип данных (массив или объект) в значение одного поля.

Параметры

string $field
Имя поля, которое будет деконструировано
array|object $data
Массив или объект, который будет деконструирован в поле

Возвращает

mixed
Полученные данные, которые должны быть назначены полю
END_OF_DOCUMENT_MARKER

deletesource public

delete( integer|string $id null , boolean $cascade true )

Удаляет запись для заданного ID. Если ID не указан, используется текущий ID. Возвращает true при успехе.

Параметры

integer|string $id необязательный null
ID записи для удаления
boolean $cascade необязательный true
Установить в значение true, чтобы удалить записи, зависящие от этой записи

Возвращаемое значение

boolean
True при успехе

Ссылка

http://book.cakephp.org/2.0/ru/models/deleting-data.html

Триггеры

Model.beforeDelete $this, array($cascade)
Model.afterDelete $this

deleteAllsource public

deleteAll( mixed $conditions , boolean $cascade true , boolean $callbacks false )

Удаляет несколько записей модели на основе набора условий.

Параметры

mixed $conditions
Условия для сопоставления
boolean $cascade необязательный true
Установить в значение true, чтобы удалить записи, зависящие от этой записи
boolean $callbacks необязательный false
Выполнить колбэки

Возвращаемое значение

boolean
True при успехе, false при неудаче

Ссылка

http://book.cakephp.org/2.0/ru/models/deleting-data.html#deleteall

escapeFieldsource public

escapeField( string $field null , string $alias null )

Экранирует имя поля и добавляет имя модели впереди. Экранирование выполняется в соответствии с правилами текущего драйвера базы данных.

Параметры

string $field необязательный null
Поле для экранирования (например: id)
string $alias необязательный null
Псевдоним модели (например: Post)

Возвращаемое значение

string
Имя экранированного поля для этой модели (например, id становится Post.id).

existssource public

exists( integer|string $id null )

Возвращает true, если запись с указанным ID существует.

Если $id не передан, вызывается Model::getID() для получения текущего ID записи, а затем выполняется Model::find('count') на текущем источнике данных для определения существования записи в постоянном хранилище.

Параметры

integer|string $id необязательный null
ID записи для проверки существования

Возвращаемое значение

boolean
True, если такая запись существует

fieldsource 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-field

findsource public

find( string $type 'first' , array $query array() )

Обращается к источнику данных и возвращает массив набора результатов.

Используется для выполнения операций поиска, где первый аргумент — тип операции поиска (all / first / count / neighbors / list / threaded), второй параметр — опции для поиска (индексированный массив, включая: 'conditions', 'limit', 'recursive', 'page', 'fields', 'offset', 'order', 'callbacks')

Например:

$model->find('all', array(
  'conditions' => array('name' => 'Thomas Anderson'),
  'fields' => array('name', 'email'),
  'order' => 'field3 DESC',
  'recursive' => 2,
  'group' => 'type',
  'callbacks' => false,
));

В дополнение к стандартным ключам запроса выше, вы можете предоставить ключи, специфичные для источника данных и поведения. Например, при использовании источника данных на основе SQL вы можете использовать ключ joins для указания дополнительных соединений, которые должны быть частью запроса.

$model->find('all', array(
  'conditions' => array('name' => 'Thomas Anderson'),
  'joins' => array(
    array(
      'alias' => 'Thought',
      'table' => 'thoughts',
      'type' => 'LEFT',
      'conditions' => '`Thought`.`person_id` = `Person`.`id`'
    )
  )
));

Отключение колбэков

Ключ callbacks позволяет вам отключить или указать колбэки, которые должны быть выполнены. Для отключения колбэков beforeFind и afterFind установите 'callbacks' => false в ваших параметрах. Вы также можете установить значение параметра callbacks в 'before' или 'after', чтобы включить только указанный колбэк.

Добавление новых типов поиска

Поведения и типы поиска также могут определять пользовательские ключи нахождения, которые передаются в find(). См. документацию по пользовательским типам поиска (http://book.cakephp.org/2.0/ru/models/retrieving-your-data.html#creating-custom-find-types) для получения информации о реализации пользовательских типов поиска.

Указание 'fields' для обозначения 'list':

  • Если поля не указаны, то используется 'id' для ключа и 'model->displayField' для значения.
  • Если указано одно поле, то 'id' используется для ключа, а указанное поле для значения.
  • Если указаны три поля, они используются (в порядке) для ключа, значения и группы.
  • В противном случае, первые два поля используются для ключа и значения.

Примечание: find(list) + представления базы данных имеют проблемы с MySQL 5.0. Попробуйте обновить до MySQL 5.1, если у вас возникнут проблемы с представлениями базы данных.

Примечание: find(count) имеет свои собственные значения возврата.

Параметры

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.html

getAffectedRowssource public

getAffectedRows( )

Возвращает количество строк, затронутых последним запросом.

Возвращаемое значение

integer
Количество строк

getAssociatedsource public

getAssociated( string $type null )

Получает все модели, с которыми связана эта модель.

Параметры

string $type необязательный null
Только результаты ассоциаций этого типа

Возвращаемое значение

array|null
Ассоциации

getColumnTypesource public

getColumnType( string $column )

Возвращает тип столбца столбца в модели.

Параметры

string $column
Имя столбца модели

Возвращаемое значение

string
Тип столбца

getColumnTypessource public

getColumnTypes( )

Возвращает ассоциативный массив имён полей и типов столбцов.

Возвращаемое значение

array
Типы полей, индексированные по имени поля

getDataSourcesource public

getDataSource( )

Получает DataSource, к которому привязана эта модель.

Возвращаемое значение

DataSource
Объект DataSource

getEventManagersource public

getEventManager( )

Возвращает экземпляр менеджера CakeEventManager, который обрабатывает любые колбэки. Вы можете использовать этот экземпляр для регистрации новых слушателей или колбэков для событий модели, или создавать свои собственные события и вызывать их по своему усмотрению.

Возвращаемое значение

CakeEventManager
CakeEventManager

getIDsource public

getID( integer $list 0 )

Возвращает ID текущей записи.

Параметры

integer $list необязательный 0
Индекс, на котором находится составленный ID

Возвращаемое значение

mixed
ID текущей записи, false, если ID отсутствует

getInsertIDsource public

getInsertID( )

Возвращает ID последней записи, вставленной в модель.

Возвращает

mixed
ID последней вставленной записи

getLastInsertIDsource public

getLastInsertID( )

Возвращает ID последней записи, вставленной в модель.

Возвращает

mixed
ID последней вставленной записи

getNumRowssource public

getNumRows( )

Возвращает количество строк, полученных из последнего запроса.

Возвращает

integer
Количество строк

getVirtualFieldsource public

getVirtualField( string $field null )

Возвращает выражение для виртуального поля модели.

Параметры

строка $field необязательно null
Имя поля для поиска

Возвращает

mixed
Если $field — строка, выражение, связанное с виртуальным полем $field. Если $field равен null, возвращает массив всех виртуальных полей модели или false, если таких полей нет.

hasAnysource public

hasAny( array $conditions null )

Возвращает true, если существует запись, удовлетворяющая заданным условиям.

Параметры

массив $conditions необязательно null
Массив SQL-условий

Возвращает

boolean
True, если такая запись существует

hasFieldsource public

hasField( string|array $name , boolean $checkVirtual false )

Возвращает true, если указанное поле существует в таблице базы данных модели.

Параметры

строка|массив $name
Имя поля для поиска или массив имён
булево $checkVirtual необязательно false
проверяет, объявлено ли поле как виртуальное

Возвращает

mixed
Если $name — строка, возвращает boolean, указывающий, существует ли поле. Если $name — массив имён полей, возвращает первое существующее поле или false, если ни одно поле не существует.

hasMethodsource public

hasMethod( string $method )

Проверяет, доступен ли метод в модели. Будет проверяться как собственные методы модели, так и методы, унаследованные от нее, а также методы, доступные через поведенческие шаблоны.

Параметры

строка $method
Метод, который должен быть вызван.

Возвращает

boolean
True, если метод доступен.

implementedEventssource public

implementedEvents( )

Возвращает список всех событий, которые будут срабатывать в модели в течение её жизненного цикла. Вы можете переопределить эту функцию, чтобы добавить собственные обработчики событий.

Возвращает

array
массив

Реализация

CakeEventListener::implementedEvents()

invalidFieldssource public

invalidFields( array|string $options array() )

Возвращает массив полей, которые не прошли валидацию текущей модели.

Кроме того, заполняет свойство validationErrors модели тем же массивом.

Параметры

массив|строка $options необязательно массив()
Необязательный массив пользовательских параметров, которые будут доступны в обратном вызове beforeValidate

Возвращает

array
Массив недопустимых полей и их сообщений об ошибках

См.

Model::validates()

invalidatesource public

invalidate( string $field , mixed $value true )

Отмечает поле как недопустимое, необязательно указывая имя правила валидации (в случае нескольких валидаций для поля), которое было нарушено.

Параметры

строка $field
Имя поля для отметки как недопустимого
смешанный $value необязательно true
Имя правила валидации, которое не было нарушено, или сообщение об ошибке, которое должно быть возвращено. Если ключ валидации не указан, по умолчанию используется true.

isForeignKeysource public

isForeignKey( string $field )

Возвращает true, если имя данного поля является внешним ключом в этой модели.

Параметры

строка $field
Возвращает true, если входная строка заканчивается на "_id"

Возвращает

boolean
True, если поле является внешним ключом, указанным в массиве belongsTo.

isUniquesource public

isUnique( array $fields , boolean|array $or true )

Возвращает false, если какие-либо переданные поля совпадают с любыми (по умолчанию — со всеми, если $or = false) их соответствующими значениями.

Может использоваться как метод валидации. Когда используется как метод валидации, параметр $or содержит массив полей, которые будут валидироваться.

Параметры

массив $fields
Пары поле/значение для поиска (если значения не указаны, они берутся из $this->data)
булево|массив $or необязательно true
Если false, все указанные поля должны совпадать, чтобы вернуть false

Возвращает

boolean
False, если найдены любые совпадающие записи по указанным полям

isVirtualFieldsource public

isVirtualField( string $field )

Возвращает true, если указанное поле является виртуальным полем модели.

Параметры

строка $field
Имя поля для поиска

Возвращает

boolean
Указывающее, существует ли поле как виртуальное поле модели.

joinModelsource public

joinModel( string|array $assoc , array $keys array() )

Получает имя и поля, которые будут использоваться моделью для объединения. Это позволяет указать поля объединения в определении ассоциации.

Параметры

строка|массив $assoc
Модель, которая будет объединена
массив $keys необязательно массив()
Любые ключи объединения, которые необходимо объединить с запрошенными ключами

Возвращает

array
массив

onErrorsource public

onError( )

Вызывается при возникновении ошибки на уровне источника данных.

Ссылка

http://book.cakephp.org/2.0/en/models/callback-methods.html#onerror

querysource public

query( string $sql )

Возвращает набор результатов для заданного SQL-запроса. Пользовательские SQL-запросы должны выполняться с помощью этого метода.

Метод может принимать 2-й и 3-й параметры.

  • 2-й параметр: либо булево значение для управления кэшированием запросов, либо массив параметров для использования с заготовленными параметрами запроса.
  • 3-й параметр: если 2-й аргумент предоставлен, булевый флаг для включения/выключения кэширования запросов.

Параметры

строка $sql
SQL-запрос

Возвращает

mixed
Массив набора результатов или булево значение, указывающее успех/неудачу в зависимости от выполненного запроса

Ссылка

http://book.cakephp.org/2.0/en/models/retrieving-your-data.html#model-query
END_OF_DOCUMENT_MARKER

readsource public

read( string|array $fields null , integer|string $id null )

Возвращает список полей из базы данных и устанавливает текущие данные модели (Model::$data) с найденной записью.

Параметры

строка|массив $fields необязательно null
Имя одного поля или массив имён полей.
целое число|строка $id необязательно null
Идентификатор записи для чтения

Возвращает

array
Массив полей базы данных или false, если запись не найдена

Ссылка

http://book.cakephp.org/2.0/ru/models/retrieving-your-data.html#model-read

resetAssociationssource public

resetAssociations( )

Сбрасывает массивы ассоциаций модели до первоначальных значений, определенных в модели. Обычно вызывается в конце каждого вызова Model::find()

Возвращает

boolean
Успех

savesource public

save( array $data null , boolean|array $validate true , array $fieldList array() )

Сохраняет данные модели (в соответствии с белым списком, если указан) в базе данных. По умолчанию валидация происходит перед сохранением. Промежуточный метод для _doSave() с обработкой транзакций.

Параметры

массив $data необязательно null
Данные для сохранения.
логическое значение|массив $validate необязательно true
Логическое значение или массив. Если логическое значение, указывает, нужно ли выполнять валидацию перед сохранением. Если массив, может содержать следующие ключи: - atomic: Если true (по умолчанию), попытается сохранить запись в одной транзакции. - validate: Установите значение true/false для включения или отключения валидации. - fieldList: Массив полей, которые вы хотите разрешить для сохранения. - counterCache: Логическое значение для управления обновлением кэш-счётчиков (если есть)
массив $fieldList необязательно array()
Список полей, которые разрешено сохранить

Возвращает

mixed
При успехе Model::$data, если оно не пустое, или true, false при неудаче

Выбрасывает

Exception
Исключение
PDOException
PDOException

Ссылка

http://book.cakephp.org/2.0/ru/models/saving-your-data.html

Триггеры

Model.beforeSave $this, массив($options)
Model.afterSave $this, массив($created, $options)

saveAllsource public

saveAll( array $data array() , array $options array() )

Обратный совместимый проходной метод для: saveMany(), validateMany(), saveAssociated() и validateAssociated()

Сохраняет несколько отдельных записей для одной модели; также работает с одной записью, а также со всеми связанными записями.

Параметры

  • validate: Установите значение false, чтобы отключить валидацию, true для валидации каждой записи перед сохранением, 'first' для валидации *всех* записей перед сохранением (по умолчанию) или 'only' для валидации записей, но не сохранения их.
  • atomic: Если true (по умолчанию), попытается сохранить все записи в одной транзакции. Должно быть установлено в false, если база данных/таблица не поддерживает транзакции.
  • fieldList: Эквивалентно параметру $fieldList в Model::save(). Должно быть ассоциативным массивом с именем модели в качестве ключа и массивом полей в качестве значения. Пример:
    array(
        'SomeModel' => array('field'),
        'AssociatedModel' => array('field', 'otherfield')
    )
    
  • deep: Смотрите saveMany/saveAssociated
  • callbacks: Смотрите Model::save()
  • counterCache: Смотрите Model::save()

Параметры

массив $data необязательно array()
Данные записи для сохранения. Это может быть массив с числовыми индексами (для сохранения нескольких записей одного типа) или массив с индексами по имени ассоциации.
массив $options необязательно array()
Параметры для использования при сохранении данных записи, см. $options выше.

Возвращает

mixed
Если atomic: True при успехе или false при неудаче. В противном случае: массив, похожий на массив $data, переданный, но значения установлены в true/false в зависимости от того, успешно ли была сохранена каждая запись.

Ссылка

http://book.cakephp.org/2.0/ru/models/saving-your-data.html#model-saveassociated-array-data-null-array-options-array
http://book.cakephp.org/2.0/ru/models/saving-your-data.html#model-saveall-array-data-null-array-options-array

saveAssociatedsource public

saveAssociated( array $data null , array $options array() )

Сохраняет одну запись, а также все связанные с ней записи.

Параметры

  • validate: Установите значение false для отключения валидации, true для валидации каждой записи перед сохранением, 'first' для валидации *всех* записей перед сохранением (по умолчанию),
  • atomic: Если true (по умолчанию), попытается сохранить все записи в одной транзакции. Должно быть установлено в false, если база данных/таблица не поддерживает транзакции.
  • fieldList: Эквивалентно параметру $fieldList в Model::save(). Должно быть ассоциативным массивом с именем модели в качестве ключа и массивом полей в качестве значения. Пример:
    array(
        'SomeModel' => array('field'),
        'AssociatedModel' => array('field', 'otherfield')
    )
    
  • deep: Если установлено в true, сохраняются не только непосредственно связанные данные, но и вложенные связанные данные.
  • callbacks: Смотрите Model::save()
  • counterCache: Смотрите Model::save()

Параметры

массив $data необязательно null
Данные записи для сохранения. Должен быть массивом с индексами по имени ассоциации.
массив $options необязательно array()
Параметры для использования при сохранении данных записи, см. $options выше.

Возвращает

mixed
Если atomic: True при успехе или false при неудаче. В противном случае: массив, похожий на массив $data, переданный, но значения установлены в true/false в зависимости от того, успешно ли была сохранена каждая запись.

Выбрасывает

PDOException
PDOException

Ссылка

http://book.cakephp.org/2.0/ru/models/saving-your-data.html#model-saveassociated-array-data-null-array-options-array

saveFieldsource public

saveField( string $name , mixed $value , boolean|array $validate false )

Сохраняет значение одного поля в базе данных на основе текущего ID модели.

Параметры

строка $name
Имя поля таблицы
смешанное значение $value
Значение поля
логическое значение|массив $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-false

saveManysource 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
PDOException

Ссылка

http://book.cakephp.org/2.0/ru/models/saving-your-data.html#model-savemany-array-data-null-array-options-array

schemasource public

schema( boolean|string $field false )

Возвращает массив метаданных таблицы (имена и типы столбцов) из базы данных. $field => keys(тип, null, значение по умолчанию, ключ, длина, дополнительная информация)

Параметры

boolean|string $field необязательно false
Установите в true, чтобы перезагрузить схему, или строку, чтобы вернуть определенный столбец

Возвращает

array|null
Массив метаданных таблицы

setsource public

set( string|array|SimpleXmlElement|DomNode $one , string $two null )

Эта функция выполняет два действия:

1. она сканирует массив $one на предмет первичного ключа, и если он найден, то устанавливает текущий id в значение $one[id]. Для всех других ключей, кроме 'id', ключи и значения $one копируются в свойство 'data' этого объекта. 2. Возвращает массив со всеми ключами и значениями $one. (Альтернативный входной тип: две строки, которые преобразуются в одномерный массив с двумя измерениями, используя $one в качестве ключа и $two в качестве его значения.)

Параметры

строка|массив|SimpleXmlElement|DomNode $one
Массив или строка данных
строка $two необязательно null
Строковое значение для альтернативного метода ввода данных

Возвращает

array|null
Данные со всеми ключами и значениями $one, в противном случае null.

Ссылка

http://book.cakephp.org/2.0/ru/models/saving-your-data.html

setDataSourcesource public

setDataSource( string $dataSource null )

Устанавливает Источник данных, к которому привязана эта модель.

Параметры

строка $dataSource необязательно null
Имя источника данных, как определено в app/Config/database.php

Исключения

MissingConnectionException
MissingConnectionException

setInsertIDsource public

setInsertID( integer|string $id )

Устанавливает идентификатор последней записи, вставленной этой моделью

Параметры

целое число|строка $id
Идентификатор последней вставленной записи

setSourcesource public

setSource( string $tableName )

Устанавливает пользовательскую таблицу для вашего класса модели. Используется контроллером для выбора таблицы базы данных.

Параметры

строка $tableName
Имя пользовательской таблицы

Исключения

MissingTableException
при отсутствии таблицы базы данных $tableName в источнике данных

unbindModelsource 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-fly

updateAllsource public

updateAll( array $fields , mixed $conditions true )

Обновляет несколько записей модели на основе набора условий.

Параметры

массив $fields
Набор полей и значений, индексированных по полям. Поля обрабатываются как фрагменты SQL, для вставки буквальных значений вручную необходимо экранировать ваши данные.
смешанный $conditions необязательно true
Условия для сопоставления, true для всех записей

Возвращает

boolean
True при успехе, false при ошибке

Ссылка

http://book.cakephp.org/2.0/ru/models/saving-your-data.html#model-updateall-array-fields-mixed-conditions

updateCounterCachesource public

updateCounterCache( array $keys array() , boolean $created false )

Обновляет кэш счетчика для ассоциаций belongsTo после операции сохранения или удаления

Параметры

массив $keys необязательно array()
Дополнительные данные внешнего ключа, по умолчанию информация $this->data
boolean $created необязательно false
True, если была создана новая запись, в противном случае обновляются только ассоциации с определенным 'counterScope'

validateAssociatedsource public

validateAssociated( array $data , array $options array() )

Валидирует одну запись, а также все связанные с ней непосредственно записи.

Параметры

  • atomic: Если true (по умолчанию), возвращает boolean. Если false, возвращает массив.
  • fieldList: Эквивалентно параметру $fieldList в Model::save()
  • deep: Если установлено в true, валидируются не только непосредственно связанные данные, но и данные, связанные на более глубоких уровнях.

Предупреждение: Этот метод потенциально может изменить переданный аргумент $data. Если вы не хотите этого, сделайте копию $data перед передачей его в этот метод.

Параметры

массив $data
$data Данные записи для валидации. Должен быть массивом, индексированным по имени ассоциации.
массив $options необязательно array()
Параметры для использования при валидации данных записи (см. выше), см. также $options в validates().

Возвращает

array|boolean
Если атомарно: true при успехе, или false при ошибке. В противном случае: массив, похожий на массив $data, переданный, но значения установлены в true/false в зависимости от того, успешно ли была валидирована каждая запись.

validateManysource public

validateMany( array $data , array $options array() )

Проверяет несколько отдельных записей для одной модели

Параметры

  • atomic: Если true (по умолчанию), возвращает boolean. Если false, возвращает массив.
  • fieldList: Эквивалентно параметру $fieldList в Model::save()
  • deep: Если установлено в true, будут проверены также все связанные данные.

Предупреждение: Этот метод может потенциально изменить переданный аргумент $data. Если вы не хотите, чтобы это произошло, сделайте копию $data перед передачей ее в этот метод

Параметры

массив $data
$data Данные записи для проверки. Это должен быть массив с числовыми индексами
массив $options необязательно array()
Параметры для использования при проверке данных записи (см. выше). См. также $options в validates().

Возвращаемое значение

boolean|array
Если атомарно: True при успехе или false при ошибке. В противном случае: массив, похожий на переданный массив $data, но значения установлены в true/false в зависимости от того, прошла ли проверка каждой записи успешно.

validatessource public

validates( array $options array() )

Возвращает true, если все поля проходят проверку. Также будут проверены ассоциации hasAndBelongsToMany, использующие ключ 'with'. Так как _saveMulti не может прервать операцию сохранения.

Будет проверять текущие данные. Используйте Model::set() или Model::create() для установки активных данных.

Параметры

массив $options необязательно array()
Необязательный массив пользовательских параметров, которые будут доступны в обратном вызове beforeValidate

Возвращаемое значение

boolean
True, если нет ошибок

validatorsource public

validator( ModelValidator $instance null )

Возвращает экземпляр валидатора модели для этого класса

Параметры

ModelValidator $instance необязательно null
Экземпляр валидатора модели. Если null, будет создан новый экземпляр ModelValidator, используя текущий объект модели

Возвращаемое значение

ModelValidator
ModelValidator

Наследуемые методы из Object

_mergeVarssource protected

_mergeVars( array $properties , string $class , boolean $normalize true )

Объединяет свойство $property этого объекта со свойством в определении $class. Значение свойства этого класса будет объединено поверх значения $class.

Это предоставляет некоторую DRY-магию CakePHP. Если вы хотите отключить ее, переопределите этот метод как пустую функцию.

Параметры

массив $properties
Имя свойств для объединения.
строка $class
Класс для объединения свойства с.
логическое значение $normalize необязательно true
Установите в true, чтобы запустить свойства через Hash::normalize() перед объединением.

_setsource protected

_set( array $properties array() )

Позволяет устанавливать несколько свойств объекта в одной строке кода. Будет устанавливать только свойства, которые являются частью объявления класса.

Параметры

массив $properties необязательно array()
Ассоциативный массив, содержащий свойства и соответствующие значения.

_stopsource protected

_stop( integer|string $status 0 )

Останавливает выполнение текущего сценария. Оборачивает exit(), что упрощает тестирование.

Параметры

целое число или строка $status необязательно 0
См. http://php.net/exit для значений

dispatchMethodsource public

dispatchMethod( string $method , array $params array() )

Вызывает метод этого объекта с заданными параметрами. Предоставляет ОО-обертку для call_user_func_array

Параметры

строка $method
Имя вызываемого метода
массив $params необязательно array()
Список параметров для использования при вызове $method

Возвращаемое значение

mixed
Возвращает результат вызова метода

logsource public

log( string $msg , integer $type LOG_ERR , null|string|array $scope null )

Удобный метод для записи сообщения в CakeLog. См. CakeLog::write() для получения дополнительной информации о записи в журналы.

Параметры

строка $msg
Сообщение журнала
целое число $type необязательно LOG_ERR
Постоянная тип ошибки. Определена в app/Config/core.php.
null|строка|массив $scope необязательно null
Область(и), в которой создается сообщение журнала. См. CakeLog::config() для получения дополнительной информации о областях ведения журнала.

Возвращаемое значение

boolean
Успех записи в журнал

requestActionsource public

requestAction( string|array $url , array $extra array() )

Вызывает метод контроллера из любой точки. Может использоваться для подключения контроллеров друг к другу или привязки плагинов к основному приложению. requestAction может использоваться для возвращения отрисованных представлений или извлечения возвращаемого значения из действий контроллеров.

Внутри этого метода используется Router::reverse() для преобразования параметра $url в строку URL. Вы должны использовать форматы URL, совместимые с Router::reverse()

Передача данных POST и GET

Данные POST и GET могут быть смоделированы в requestAction. Используйте $extra['url'] для данных GET. Параметр $extra['data'] позволяет моделировать данные POST.

Параметры

строка|массив $url
Строка или массив URL. В отличие от других массивов URL в CakePHP, этот URL не будет автоматически обрабатывать переданные и именованные аргументы в параметре $url.
массив $extra необязательно array()
Если массив включает ключ "return", он устанавливает AutoRender в true. Также может использоваться для отправки данных GET/POST и именованных/переданных аргументов.

Возвращаемое значение

mixed
Булево значение true или false при успехе/неудаче или содержимое отрисованного действия, если в $extra установлен ключ 'return'.

toStringsource public

toString( )

Преобразование объекта в строку. Каждый класс может переопределить этот метод по мере необходимости.

Возвращаемое значение

string
Имя этого класса

Резюме свойств

$actsAssource

public массив

Для этой модели нет поведений

null

$belongsTosource

public массив

Разрешения связывают ARO с ACO

array('Aro', 'Aco')

$cacheQueriessource

public boolean

Явно отключает кеширование запросов в оперативной памяти

false

$useTablesource

public строка

Переопределение имени таблицы по умолчанию

'aros_acos'

Наследуемые свойства из Model

$Behaviorssource

public BehaviorCollection

Содержит объекты поведения, в настоящее время привязанные к этой модели.

null

$__backAssociationsource

public array

Содержит временные ассоциации моделей, чтобы разрешить динамическую (от)вязку.

array()

$__backContainableAssociationsource

public array

Обратная ассоциация, поддерживающая контейнеры

array()

$__backInnerAssociationsource

public array

Обратная внутренняя ассоциация

array()

$__backOriginalAssociationsource

public array

Обратная оригинальная ассоциация

array()

$__safeUpdateModesource

public boolean

Режим безопасного обновления. Если true, это предотвращает Model::save() от генерации запроса с WHERE 1 = 1 при возникновении проблемы гонки.

false

$_associationKeyssource

protected array

Список ключевых слов ассоциаций по умолчанию.

array(
    'belongsTo' => array('className', 'foreignKey', 'conditions', 'fields', 'order', 'counterCache'),
    'hasOne' => array('className', 'foreignKey', 'conditions', 'fields', 'order', 'dependent'),
    'hasMany' => array('className', 'foreignKey', 'conditions', 'fields', 'order', 'limit', 'offset', 'dependent', 'exclusive', 'finderQuery', 'counterQuery'),
    'hasAndBelongsToMany' => array('className', 'joinTable', 'with', 'foreignKey', 'associationForeignKey', 'conditions', 'fields', 'order', 'limit', 'offset', 'unique', 'finderQuery')
)

$_associationssource

protected array

Содержит предоставленные/сгенерированные имена ключей ассоциаций и другие данные для всех ассоциаций.

array('belongsTo', 'hasOne', 'hasMany', 'hasAndBelongsToMany')

$_eventManagersource

protected CakeEventManager

Экземпляр CakeEventManager, используемый этой моделью для отправки внутренних событий.

null

$_insertIDsource

protected integer

Идентификатор записи модели, которая была последней вставлена.

null

$_schemasource

protected array

Метаданные таблицы для каждого поля.

null

$_sourceConfiguredsource

protected boolean

Была ли настроена система получения данных?

См.

Model::getDataSource()
false

$_validatorsource

protected ModelValidator

Экземпляр ModelValidator

null

$aliassource

public string

Псевдоним для модели.

null

$cacheSourcessource

public boolean

Кэшировать источники для этой модели.

true

$datasource

public array

Контейнер данных, полученных этой моделью из постоянного хранилища (обычно базы данных).

Ссылка

http://book.cakephp.org/2.0/ru/models/model-attributes.html#data
array()

$displayFieldsource

public string

Имя пользовательского поля отображения. Поля отображения используются Scaffold, в элементах OPTION выпадающих списков.

Это поле также используется в find('list') при вызове без дополнительных параметров в списке полей

Ссылка

http://book.cakephp.org/2.0/ru/models/model-attributes.html#displayfield
null

$findMethodssource

public array

Список допустимых параметров метода поиска, переданных как первый параметр в find().

array(
    'all' => true, 'first' => true, 'count' => true,
    'neighbors' => true, 'list' => true, 'threaded' => true
)

$findQueryTypesource

public string

Тип текущего выполняемого запроса поиска.

null
END_OF_DOCUMENT_MARKER

$hasAndBelongsToManysource

public array

Подробный список ассоциаций hasAndBelongsToMany.

Базовое использование

public $hasAndBelongsToMany = array('Role', 'Address');

Подробная настройка

public $hasAndBelongsToMany = array(
    'Role',
    'Address' => array(
        'className' => 'Address',
        'foreignKey' => 'user_id',
        'associationForeignKey' => 'address_id',
        'joinTable' => 'addresses_users'
    )
);

Возможные ключи в ассоциации

  • className: имя класса модели, связанной с текущей моделью. Если вы определяете отношение «Рецепт HABTM Тег», ключ className должен быть равен «Тег».
  • joinTable: Имя таблицы соединения, используемой в этой ассоциации (если текущая таблица не соответствует соглашению об именах для HABTM таблиц соединения).
  • with: Определяет имя модели для таблицы соединения. По умолчанию CakePHP автоматически создаст модель для вас. В приведенном выше примере она будет называться RecipesTag. С помощью этого ключа вы можете переопределить это имя по умолчанию. Модель таблицы соединения можно использовать как любую «обычную» модель для прямого доступа к таблице соединения.
  • foreignKey: имя внешнего ключа, найденного в текущей модели. Это особенно полезно, если вам нужно определить несколько HABTM отношений. Значение по умолчанию для этого ключа — подчеркнутое, единственное число имени текущей модели, с добавлением суффикса «_id».
  • associationForeignKey: имя внешнего ключа, найденного в другой модели. Это особенно полезно, если вам нужно определить несколько HABTM отношений. Значение по умолчанию для этого ключа — подчеркнутое, единственное число имени другой модели, с добавлением суффикса «_id».
  • unique: Если true (значение по умолчанию), Cake сначала удалит существующие записи отношений в таблице внешних ключей перед вставкой новых, при обновлении записи. Таким образом, существующие ассоциации необходимо снова передавать при обновлении. Чтобы предотвратить удаление существующих записей отношений, установите этот ключ в строку 'keepExisting'.
  • conditions: фрагмент SQL, используемый для фильтрации записей связанной модели. Хорошей практикой является использование имен моделей во фрагментах SQL: «Comment.status = 1» всегда лучше, чем просто «status = 1».
  • fields: список полей, которые будут извлечены при извлечении данных связанной модели. По умолчанию возвращает все поля.
  • order: фрагмент SQL, определяющий порядок сортировки возвращаемых связанных строк.
  • limit: максимальное количество связанных строк, которые вы хотите получить.
  • offset: количество связанных строк, которые нужно пропустить (учитывая текущие условия и порядок) перед извлечением и связыванием.
  • finderQuery, полное SQL-запрос, который CakePHP может использовать для извлечения связанных записей модели. Это следует использовать в ситуациях, требующих очень специфических результатов.

Ссылка

http://book.cakephp.org/2.0/ru/models/associations-linking-models-together.html#hasandbelongstomany-habtm
array()

$hasManysource

public array

Подробный список ассоциаций hasMany.

Базовое использование

public $hasMany = array('Comment', 'Task');

Подробная настройка

public $hasMany = array(
    'Comment',
    'Task' => array(
        'className' => 'Task',
        'foreignKey' => 'user_id'
    )
);

Возможные ключи в ассоциации

  • className: имя класса модели, связанной с текущей моделью. Если вы определяете отношение «Пользователь hasMany Комментарий», ключ className должен быть равен «Комментарий».
  • foreignKey: имя внешнего ключа, найденного в другой модели. Это особенно полезно, если вам нужно определить несколько отношений hasMany. Значение по умолчанию для этого ключа — подчеркнутое, единственное число имени фактической модели, с добавлением суффикса «_id».
  • conditions: фрагмент SQL, используемый для фильтрации записей связанной модели. Хорошей практикой является использование имен моделей во фрагментах SQL: «Comment.status = 1» всегда лучше, чем просто «status = 1».
  • fields: список полей, которые будут извлечены при извлечении данных связанной модели. По умолчанию возвращает все поля.
  • order: фрагмент SQL, определяющий порядок сортировки возвращаемых связанных строк.
  • limit: максимальное количество связанных строк, которые вы хотите получить.
  • offset: количество связанных строк, которые нужно пропустить (учитывая текущие условия и порядок) перед извлечением и связыванием.
  • dependent: Когда dependent установлено в true, возможен рекурсивный удаление моделей. В этом примере записи Comment будут удалены, когда запись связанного пользователя будет удалена.
  • exclusive: Когда exclusive установлено в true, рекурсивное удаление модели выполняется с помощью вызова deleteAll(), а не удаления каждого объекта по отдельности. Это значительно улучшает производительность, но может не подходить для всех случаев.
  • finderQuery: полное SQL-запрос, который CakePHP может использовать для извлечения связанных записей модели. Это следует использовать в ситуациях, требующих очень специфических результатов.

Ссылка

http://book.cakephp.org/2.0/ru/models/associations-linking-models-together.html#hasmany
array()

$hasOnesource

public array

Подробный список ассоциаций hasOne.

Базовое использование

public $hasOne = array('Profile', 'Address');

Подробная настройка

public $hasOne = array(
    'Profile',
    'Address' => array(
        'className' => 'Address',
        'foreignKey' => 'user_id'
    )
);

Возможные ключи в ассоциации

  • className: имя класса модели, связанной с текущей моделью. Если вы определяете отношение «Пользователь hasOne Профиль», ключ className должен быть равен «Профиль».
  • foreignKey: имя внешнего ключа, найденного в другой модели. Это особенно полезно, если вам нужно определить несколько отношений hasOne. Значение по умолчанию для этого ключа — подчеркнутое, единственное число имени текущей модели, с добавлением суффикса «_id». В приведенном выше примере он будет по умолчанию равен «user_id».
  • conditions: фрагмент SQL, используемый для фильтрации записей связанной модели. Хорошей практикой является использование имен моделей во фрагментах SQL: «Profile.approved = 1» всегда лучше, чем просто «approved = 1».
  • fields: список полей, которые будут извлечены при извлечении данных связанной модели. По умолчанию возвращает все поля.
  • order: фрагмент SQL, определяющий порядок сортировки возвращаемых связанных строк.
  • dependent: Когда dependent установлен в true, и метод delete() модели вызывается с параметром cascade, установленном в true, связанные записи модели также удаляются. В данном случае мы устанавливаем его в true, чтобы при удалении пользователя также удалялся ее связанный профиль.

Ссылка

http://book.cakephp.org/2.0/ru/models/associations-linking-models-together.html#hasone
array()

$idsource

public mixed

Значение первичного ключа ID записи, к которой в данный момент указывает эта модель. Автоматически устанавливается после вставки в базу данных.

false

$namesource

public string

Имя модели.

Ссылка

http://book.cakephp.org/2.0/ru/models/model-attributes.html#name
null

$ordersource

public string

Имя столбца(ов) и направление(ий) для сортировки результатов find по умолчанию.

public $order = "Post.created DESC"; public $order = array("Post.view_count DESC", "Post.rating DESC");

Ссылка

http://book.cakephp.org/2.0/ru/models/model-attributes.html#order
null

$pluginsource

public string

Плагин, к которому принадлежит модель.

null

$primaryKeysource

public string

Имя поля первичного ключа для этой модели.

Ссылка

http://book.cakephp.org/2.0/ru/models/model-attributes.html#primarykey
null

$recursivesource

public integer

Количество ассоциаций для рекурсии во время вызовов find. По умолчанию извлекает только первый уровень.

Ссылка

http://book.cakephp.org/2.0/ru/models/model-attributes.html#recursive
1

$schemaNamesource

public string

Содержит физическое имя схемы/базы данных для данной модели. Автоматически устанавливается во время создания модели.

null

$tablesource

public string

Имя таблицы для данной модели.

false

$tablePrefixsource

public string

Префикс таблицы базы данных для таблиц в модели.

Ссылка

http://book.cakephp.org/2.0/ru/models/model-attributes.html#tableprefix
null

$tableToModelsource

public array

Список имён таблиц, включённых в описание модели. Используется для ассоциаций.

array()

$useConsistentAfterFindsource

public boolean

Если true, afterFind получит согласованно отформатированные результаты $results в случае, если $primary равен false. Формат будет аналогичен следующему.

$results = array(
        0 => array(
                'ModelName' => array(
                        'field1' => 'value1',
                        'field2' => 'value2'
                )
        )
);
true

$useDbConfigsource

public string

Имя подключения к источнику данных (DataSource), которое использует эта модель

Значение должно быть именем атрибута, определённым в app/Config/database.php или созданным с помощью ConnectionManager::create().

Ссылка

http://book.cakephp.org/2.0/ru/models/model-attributes.html#usedbconfig
'default'

$validatesource

public array

Список правил валидации. Должен быть массивом, где ключ — имя поля, а значение — одно из следующих:

Валидация с использованием регулярных выражений

public $validate = array(
    'name' => '/^[a-z].+$/i'
);

Валидация с использованием методов (без параметров)

public $validate = array(
    'name' => 'notBlank'
);

Валидация с использованием методов (с параметрами)

public $validate = array(
    'length' => array(
        'rule' => array('lengthBetween', 5, 25)
    )
);

Валидация с использованием пользовательского метода

public $validate = array(
    'password' => array(
        'rule' => array('customValidation')
    )
);
public function customValidation($data) {
    // $data will contain array('password' => 'value')
    if (isset($this->data[$this->alias]['password2'])) {
        return $this->data[$this->alias]['password2'] === current($data);
    }
    return true;
}

Валидации с сообщениями

Эти сообщения будут использоваться в Model::$validationErrors и могут быть использованы в FormHelper

public $validate = array(
    'length' => array(
        'rule' => array('lengthBetween', 5, 15),
        'message' => array('Between %d to %d characters')
    )
);

Многократные валидации одного поля

public $validate = array(
    'login' => array(
        array(
            'rule' => 'alphaNumeric',
            'message' => 'Only alphabets and numbers allowed',
            'last' => true
        ),
        array(
            'rule' => array('minLength', 8),
            'message' => array('Minimum length of %d characters')
        )
    )
);

Допустимые ключи в валидациях

  • rule: Строка с именем метода, регулярное выражение (начинающееся с косой черты) или массив с методом и параметрами
  • message: Строка с сообщением или массив, если есть несколько параметров. См. http://php.net/sprintf
  • last: Булево значение, указывающее, продолжать ли валидацию других правил, если текущее правило не выполнено [По умолчанию: true]
  • required: Булево значение, указывающее, должно ли поле присутствовать при сохранении
  • allowEmpty: Булево значение, указывающее, может ли поле быть пустым
  • on: Возможные значения: update, create. Указывает, применять это правило только при обновлении или создании

Ссылка

http://book.cakephp.org/2.0/ru/models/model-attributes.html#validate
http://book.cakephp.org/2.0/ru/models/data-validation.html
array()

$validationDomainsource

public string

Имя домена строки валидации, используемое при переводе ошибок валидации.

null

$validationErrorssource

public array

Список ошибок валидации.

array()

$virtualFieldssource

public array

Массив виртуальных полей, имеющихся в этой модели. Виртуальные поля — алиасированные SQL-выражения. Поля, добавленные в этот свойство, будут читаться как другие поля в модели, но не будут сохраняться.

public $virtualFields = array('two' => '1 + 1');

Простой пример настройки виртуальных полей

Ссылка

http://book.cakephp.org/2.0/ru/models/model-attributes.html#virtualfields
array()

$whitelistsource

public array

Белый список полей, разрешённых для сохранения.

array()

© 2005–2016 The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
http://api.cakephp.org/2.7/class-Permission.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API