Spec-Zone.ru › CakePHP 2.7

Класс AclNode

Узел ACL

Объект
Extended by Модель реализует CakeEventListener
Extended by AclNode

Непосредственные известные подклассы

Aco, Aro
Пакет: Cake\Модель
Авторские права: Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
Лицензия: MIT Лицензия
Расположено в Cake/Model/AclNode.php

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

__constructисходный код public

__construct( )

Конструктор

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

Model::__construct()

nodeисходный код public

node( string|array|Model $ref null )

Возвращает узел Aro/Aco для этой модели

Параметры

строка|массив|Model $ref необязательно null
Массив с 'model' и 'foreign_key', объект модели или строковое значение

Возвращает

array
Узел, найденный в базе данных

Выбрасывает

CakeException
при привязке к модели, которой не существует.

Методы, унаследованные от Модель

__callисходный код public

__call( string $method , array $params )

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

Параметры

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

Возвращает

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

__getисходный код public

__get( string $name )

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

Параметры

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

Возвращает

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

__issetисходный код public

__isset( string $name )

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

Параметры

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

Возвращает

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

_addToWhiteListисходный код protected

_addToWhiteList( string $key , array $options )

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

Параметры

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

Возвращает

array
опции

_clearCacheисходный код protected

_clearCache( string $type null )

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

Параметры

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

Возвращает

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

_collectForeignKeysисходный код protected

_collectForeignKeys( string $type 'belongsTo' )

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

Параметры

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

Возвращает

array
массив

_constructLinkedModelисходный код protected

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

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

Параметры

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

_createLinksисходный код protected

_createLinks( )

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

_deleteDependentисходный код protected

_deleteDependent( string $id , boolean $cascade )

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

Параметры

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

_deleteLinksисходный код protected

_deleteLinks( string $id )

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

Параметры

строка $id
Идентификатор удаленной записи

_doSaveисходный код protected

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

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

Параметры

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

Возвращает

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

Выбрасывает

PDOException
PDOException

Ссылка

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

_filterResultsисходный код protected

_filterResults( array $results , boolean $primary true )

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

Параметры

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

Возвращает

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

Триггерит

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

_findAllисходный код protected

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

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

Параметры

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

Возвращает

array
массив

См. также

Model::find()
END_OF_DOCUMENT_MARKER

_findCountsource protected

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

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

Параметры

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

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

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

См. также

Model::find()

_findFirstsource protected

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

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

Параметры

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

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

array
массив

См. также

Model::find()

_findListsource protected

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

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

Параметры

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

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

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

См. также

Model::find()

_findNeighborssource protected

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

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

Параметры

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

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

array
массив

_findThreadedsource protected

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

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

Параметры

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

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

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

_generateAssociationsource protected

_generateAssociation( string $type , string $assocKey )

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

Параметры

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

_isUUIDFieldsource protected

_isUUIDField( string $field )

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

Параметры

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

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

boolean
bool

_normalizeXmlDatasource protected

_normalizeXmlData( array $xml )

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

Параметры

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

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

array
массив

_prepareUpdateFieldssource protected

_prepareUpdateFields( array $data )

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

Параметры

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

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

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

_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
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(). Значение возврата должно быть (изменёнными) результатами.

Параметры

смешанный $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
Истина, если это сохранение создало новую запись
массив $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
Если true, записи, зависящие от этой записи, также будут удалены

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

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

Ссылка

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

beforeFindsource public

beforeFind( array $query )

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

Параметры

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

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

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

Ссылка

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
True, если операция должна продолжаться, false — если её следует прервать

См.

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
True, если операция валидации должна продолжаться, false — для прерывания

См.

Model::save()

Ссылка

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

bindModelsource public

bindModel( array $params , boolean $reset true )

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

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

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

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

Связи, которые не сделаны постоянными, будут сброшены следующим вызовом Model::find() для этой модели.

Параметры

array $params
Набор связей (индексированные по типу связи)
boolean $reset необязательно true
Установите в false, чтобы сделать связь постоянной

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

boolean
Успех

Ссылка

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) и, как следует из названия, очищает id, данные и ошибки валидации.

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

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

См.

Model::create()

createsource 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-array

deconstructsource public

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

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

Параметры

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

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

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

deletesource public

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

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

Параметры

integer|string $id необязательно null
Идентификатор записи для удаления
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).
END_OF_DOCUMENT_MARKER

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,
));

В дополнение к стандартным ключам запроса выше, вы можете указать Datasource и поведение-специфичные ключи. Например, при использовании 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 )

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

Параметры

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

Возвращает

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

hasAnysource public

hasAny( array $conditions null )

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

Параметры

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

Возвращает

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

hasFieldsource public

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

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

Параметры

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

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

mixed
Если $name — строка, возвращает логическое значение, указывающее, существует ли поле. Если $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/ru/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/ru/models/retrieving-your-data.html#model-query

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
Данные для сохранения.
boolean|массив $validate необязательно true
Булево значение или массив. Если boolean, указывает, следует ли выполнять валидацию перед сохранением. Если массив, может содержать следующие ключи: - atomic: Если true (по умолчанию), попытается сохранить запись в одной транзакции. - validate: Устанавливается в true/false для включения/отключения валидации. - fieldList: Массив полей, которые вы хотите разрешить для сохранения. - callbacks: Устанавливается в false для отключения обратных вызовов. Использование 'before' или 'after' включит только эти обратные вызовы. - counterCache: Boolean, управляющий обновлением кэша счётчиков (если таковые имеются)
массив $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, array($options)
Model.afterSave $this, array($created, $options)

saveAllsource public

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

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

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

Опции

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

Параметры

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

Возвращает

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

Ссылка

http://book.cakephp.org/2.0/ru/models/saving-your-data.html#model-saveassociated-array-data-null-array-options-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
Если атомарный: 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 )

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

Параметры

строка $name
Имя поля таблицы
смешанное $value
Значение поля
boolean|массив $validate необязательно false
Булево значение или массив. Если boolean, указывает, следует ли выполнять валидацию перед сохранением. Если массив, позволяет управлять опциями '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(type, null, default, key, length, extra)

Параметры

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

Возвращает

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

setsource public

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

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

1. она сканирует массив $one в поисках первичного ключа, и если он найден, то устанавливает текущий идентификатор в значение $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
Набор связей для отключения (индексируется по типу связи)
логическое значение $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 )

Обновляет кэш счётчика связанных принадлежностей после операции сохранения или удаления.

Параметры

массив $keys необязательно array()
Необязательные данные внешнего ключа, по умолчанию информация $this->data
логическое значение $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

Методы, унаследованные от Объекта

_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|string|array $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. Для данных GET используйте $extra['url']. Параметр $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 массив

Модели ACL используют поведение Tree

array('Tree' => array('type' => 'nested'))

$cacheQueriessource

public булево

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

false

Наследуемые свойства из 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

$belongsTosource

public array

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

Основные примеры использования

public $belongsTo = array('Group', 'Department');

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

public $belongsTo = array(
    'Group',
    'Department' => array(
        'className' => 'Department',
        'foreignKey' => 'department_id'
    )
);

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

  • className: имя класса модели, связанной с текущей моделью. Если вы определяете отношение 'Profile belongsTo User', ключ className должен быть равен 'User'.
  • foreignKey: имя внешнего ключа, найденного в текущей модели. Это особенно полезно, если вам нужно определить несколько отношений belongsTo. Значение по умолчанию для этого ключа — подчеркнутое, единственное имя другой модели, с добавленным _id.
  • conditions: SQL-фрагмент, используемый для фильтрации записей связанной модели. Хорошей практикой является использование имен моделей в SQL-фрагментах: 'User.active = 1' всегда лучше, чем просто 'active = 1'.
  • type: тип соединения, используемого в SQL-запросе, значение по умолчанию — LEFT, которое может не подойти во всех случаях. INNER может быть полезен, когда вам нужно все поля из основной и связанной моделей или ничего вообще (эффективно, когда используется с некоторыми условиями, конечно). (Примечание: значение типа — в нижнем регистре, например, left, inner)
  • fields: Список полей, которые будут извлечены, когда извлекаются данные связанной модели. По умолчанию возвращает все поля.
  • order: SQL-фрагмент, определяющий порядок сортировки возвращаемых строк связанной модели.
  • counterCache: Если установлено в true, связанная модель автоматически увеличивает или уменьшает поле "[имя_модели_в_единственном_числе]_count" во внешней таблице всякий раз, когда вы выполняете save() или delete(). Если это строка, то это имя поля, которое необходимо использовать. Значение в счетчике отражает количество связанных строк.
  • counterScope: необязательный массив условий, используемый для обновления поля счетчика.

Ссылка

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

$cacheSourcessource

public boolean

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

true

$datasource

public array

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

Ссылка

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

$displayFieldsource

public string

Пользовательское имя поля отображения. Поля отображения используются Scaffold, в элементах SELECT.

Это поле также используется в 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

$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 будут удалены, когда запись User, с которой они связаны, была удалена.
  • 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'

$useTablesource

public string

Настраиваемое имя таблицы базы данных или null/false, если ассоциация с таблицей не требуется.

Ссылка

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

$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');

Это упрощённый пример того, как установить virtualFields

Ссылка

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

Spec-Zone.ru

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