Spec-Zone.ru › CakePHP 2.7

Класс Aco

Объект управления доступом

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

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

__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
Идентификатор записи, которая была удалена
логическое $cascade
Устанавливается в true, чтобы удалить записи, которые зависят от этой записи

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

_deleteLinks( string $id )

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

Параметры

строка $id
Идентификатор записи, которая была удалена

_doSaveисходный код 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/en/models/saving-your-data.html

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

_filterResults( array $results , boolean $primary true )

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

Параметры

массив $results
Результаты для фильтрации
логическое $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()
Результаты.

Возвращает

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 необязательно массив()
Результаты.

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

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

См. также

Model::find()

_findFirstsource protected

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

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

Параметры

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

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

array
массив

См. также

Model::find()

_findListsource protected

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

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

Параметры

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

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

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

См. также

Model::find()

_findNeighborssource protected

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

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

Параметры

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

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

array
массив

_findThreadedsource protected

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

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

Параметры

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

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

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

Параметры

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

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

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

Ссылка

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

afterSavesource public

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

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

Параметры

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

См. также

Model::save()

Ссылка

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

afterValidatesource public

afterValidate( )

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

associationssource public

associations( )

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

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

array
массив
END_OF_DOCUMENT_MARKER

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 )

Удаляет запись для заданного 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).
END_OF_DOCUMENT_MARKER

existssource public

exists( integer|string $id null )

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

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

Параметры

целое число|строка $id необязательно null
ID записи, для которой нужно проверить существование

Возвращает

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

fieldsource public

field( string $name , array $conditions null , string $order null )

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

Параметры

строка $name
Имя поля, которое нужно получить.
массив $conditions необязательно null
SQL условия (по умолчанию NULL).
строка $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() )

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

Используется для выполнения операций поиска, где первый аргумент - тип операции поиска (все / первый / количество / соседи / список / нитевидный), второй параметр - опции для поиска (индексированный массив, включая: 'условия', 'предел', 'рекурсивный', 'страница', 'поля', 'смещение', 'порядок', 'обработчики').

Например:

$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) для получения информации о реализации пользовательских типов поиска.

Указание 'полей' для обозначения 'список':

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

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

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

Параметры

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

Возвращает

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 )

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

Параметры

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

Возвращает

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

getColumnTypesource public

getColumnType( string $column )

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

Параметры

строка $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 текущей записи.

Параметры

целое число $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, если такая запись существует
END_OF_DOCUMENT_MARKER

hasFieldsource public

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

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

Параметры

строка|массив $name
Имя поля для поиска или массив имён
boolean $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)
boolean|массив $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-й параметр: либо boolean для управления кэшированием запросов, либо массив параметров для использования с заготовками предложений.
  • 3-й параметр: если 2-й аргумент указан, флаг boolean для включения/выключения кэширования запросов.

Параметры

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

Возвращает

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

Ссылка

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
Успех

сохранитьsource public

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

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

Параметры

массив $data необязательно null
Данные для сохранения.
boolean|массив $validate необязательно true
Либо boolean, либо массив. Если 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)

сохранитьВсеsource public

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

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

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

Параметры

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

Параметры

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

Возвращает

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

сохранитьСвязанныеsource public

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

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

Параметры

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

Параметры

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

Возвращает

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

сохранитьПолеsource public

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

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

Параметры

строка $name
Имя поля таблицы
смешанный $value
Значение поля
boolean|массив $validate необязательно false
Либо boolean, либо массив. Если 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

сохранитьМножествоsource public

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

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

Параметры

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

Параметры

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

Возвращает

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

Выбрасывает

PDOException
PDOException

Ссылка

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

схемаsource 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 на наличие первичного ключа, и если он найден, устанавливает текущий 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 последней записи, вставленной этой моделью.

Параметры

целое число|строка $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 )

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

Параметры

массив $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. Используйте $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
Название этого класса

Краткое описание свойств

$hasAndBelongsToManysource

public массив

Связывается с узлами ARO через параметры разрешений

array('Aro' => array('with' => 'Permission'))

$namesource

public строка

Имя модели

'Aco'

Свойства, унаследованные от AclNode

$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: имя класса модели, связанной с текущей моделью. Если вы определяете отношение 'Профиль принадлежит Пользователю', ключ className должен быть равен 'Пользователь'.
  • foreignKey: имя внешнего ключа, найденного в текущей модели. Это особенно полезно, если вам нужно определить несколько отношений belongsTo. Значение по умолчанию для этого ключа - подчеркнутое, единственное имя другой модели, с суффиксом '_id'.
  • conditions: фрагмент SQL, используемый для фильтрации записей связанной модели. Рекомендуется использовать имена моделей в фрагментах SQL: 'Пользователь.активный = 1' всегда лучше, чем просто 'активный = 1'.
  • type: тип соединения, используемого в запросе SQL, по умолчанию LEFT, что может не подойти во всех ситуациях, INNER может быть полезен, когда вам нужно всё из основных и связанных моделей или ничего вообще! (эффективно, когда используется с некоторыми условиями, конечно). (Примечание: значение type в нижнем регистре - т.е. 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, в элементах 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

$hasManysource

public array

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

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

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

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

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

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

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

Ссылка

http://book.cakephp.org/2.0/en/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: имя класса модели, связанной с текущей моделью. Если вы определяете отношение «Пользователь имеет один Профиль», ключ className должен быть равен 'Профиль'.
  • foreignKey: имя внешнего ключа, найденного в другой модели. Это особенно удобно, если вам нужно определить несколько отношений hasOne. Значение по умолчанию для этого ключа — подчеркнутое, единственное имя текущей модели, с добавлением суффикса '_id'. В приведенном выше примере он будет по умолчанию равен 'user_id'.
  • conditions: фрагмент SQL, используемый для фильтрации записей связанной модели. Хорошей практикой является использование имён моделей в фрагментах SQL: "Профиль.утвержден = 1" всегда лучше, чем просто "утвержден = 1".
  • fields: список полей, которые будут извлечены при извлечении данных связанной модели. По умолчанию возвращаются все поля.
  • order: фрагмент SQL, определяющий порядок сортировки возвращаемых связанных строк.
  • dependent: когда ключ dependent установлен в значение true, и метод delete() модели вызывается с параметром cascade, установленным в значение true, записи связанной модели также удаляются. В данном случае мы устанавливаем его в значение true, чтобы при удалении пользователя также удалялся его связанный профиль.

Ссылка

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

$idsource

public mixed

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

false

$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/en/models/model-attributes.html#order
null

$pluginsource

public string

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

null

$primaryKeysource

public string

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

Ссылка

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

$recursivesource

public integer

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

Ссылка

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

$schemaNamesource

public string

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

null

$tablesource

public string

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

false

$tablePrefixsource

public string

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

Ссылка

http://book.cakephp.org/2.0/en/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/en/models/model-attributes.html#usedbconfig
'default'

$useTablesource

public string

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

Ссылка

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

$validatesource

public массив

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

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

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/en/models/model-attributes.html#validate
http://book.cakephp.org/2.0/en/models/data-validation.html
array()

$validationDomainsource

public строка

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

null

$validationErrorssource

public массив

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

array()

$virtualFieldssource

public массив

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

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

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

Ссылка

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

$whitelistsource

public массив

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

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

Spec-Zone.ru

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