Spec-Zone.ru › CakePHP 2.7

Класс Model

Объектно-реляционный маппер.

Модель данных объектов на основе DBO. Автоматически выбирает имя таблицы базы данных на основе множественного числа и нижнего регистра имени класса объекта (например, класс 'User' => таблица 'users'; класс 'Man' => таблица 'men'). Таблица должна иметь по крайней мере первичный ключ 'id auto_increment'.

Объект
Extended by Model реализует CakeEventListener

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

AclNode, AppModel, CakeTestModel

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

Aco, AcoAction, Aro, I18nModel, Permission
Пакет: Cake\Model
Авторские права: Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
Лицензия: MIT License
Ссылка: http://book.cakephp.org/2.0/ru/models.html
Расположение: Cake/Model/Model.php

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

__callsource public

__call( string $method , array $params )

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

Параметры

string $method
Имя метода для вызова.
array $params
Параметры для метода.

Возвращает

mixed
То, что возвращает вызываемый метод

__constructsource public

__construct( boolean|integer|string|array $id false , string $table null , string $ds null )

Конструктор. Связывает таблицу базы данных модели с объектом.

Если $id является массивом, его можно использовать для передачи нескольких параметров в модель.

  • id: ID для начала модели.
  • table: Таблица для использования в этой модели.
  • ds: Имя подключения, к которому подключена эта модель.
  • name: Имя модели, например, Post.
  • alias: Псевдоним модели, который используется для регистрации экземпляра в ClassRegistry. Например, ParentThread

Переопределение метода Model::__construct

При переопределении Model::__construct() обратите внимание на необходимость включения и передачи всех 3 аргументов в parent::__construct($id, $table, $ds);

Динамическое создание моделей

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

$Post = new Model(array('table' => 'posts', 'name' => 'Post', 'ds' => 'connection2'));

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

Параметры

boolean|integer|string|array $id необязательно false
Установите этот ID для этой модели при запуске, также может быть массивом параметров, см. выше.
string $table необязательно null
Имя таблицы базы данных для использования.
string $ds необязательно null
Имя подключения к источнику данных.

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

Object::__construct()

__getsource public

__get( string $name )

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

Параметры

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

Возвращает

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

__issetsource public

__isset( string $name )

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

Параметры

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

Возвращает

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

_addToWhiteListsource protected

_addToWhiteList( string $key , array $options )

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

Параметры

string $key
Имя поля для добавления в список
array $options
Список параметров

Возвращает

array
параметры

_clearCachesource protected

_clearCache( string $type null )

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

Параметры

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

Возвращает

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

_collectForeignKeyssource protected

_collectForeignKeys( string $type 'belongsTo' )

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

Параметры

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

Возвращает

array
массив

_constructLinkedModelsource protected

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

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

Параметры

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

_createLinkssource protected

_createLinks( )

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

_deleteDependentsource protected

_deleteDependent( string $id , boolean $cascade )

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

Параметры

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

_deleteLinkssource protected

_deleteLinks( string $id )

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

Параметры

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

_doSavesource protected

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

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

Параметры

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

Возвращает

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

Выбрасывает

PDOException
PDOException

Ссылка

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

_filterResultssource protected

_filterResults( array $results , boolean $primary true )

Пропускает результаты запроса через методы model и behavior послеFind().

Параметры

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

Возвращает

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

Триггеры

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

_findAllsource protected

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

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

Параметры

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

Возвращает

array
массив

См. также

Model::find()

_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
Возвращает обновлённые значения внешних ключей вместе со старыми значениями в ключе '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
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
END_OF_DOCUMENT_MARKER

afterSavesource public

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

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

Параметры

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

См. также

Model::save()

Ссылка

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

afterValidatesource public

afterValidate( )

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

associationssource public

associations( )

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

Возвращает

array
array

beforeDeletesource public

beforeDelete( boolean $cascade true )

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

Параметры

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

Возвращает

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

Ссылка

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

beforeFindsource public

beforeFind( array $query )

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

Параметры

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 optional 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 optional 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 optional 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 optional 'first'
Тип операции поиска (all / first / count / neighbors / list / threaded)
array $query optional array()
Поля параметров (conditions / fields / joins / limit / offset / order / page / group / callbacks)

Возвращает

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 optional array()
Необязательный массив данных для присвоения модели после ее создания. Если null или false, значения по умолчанию схемы не объединяются.
boolean $filterKey optional 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 optional null
Идентификатор удаляемой записи
boolean $cascade optional true
Установите в true, чтобы удалить записи, зависящие от этой записи

Возвращает

boolean
True при успехе

Ссылка

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

Триггеры

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

deleteAllsource public

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

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

Параметры

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

Возвращает

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

Ссылка

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

escapeFieldsource public

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

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

Параметры

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

Возвращает

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

existssource public

exists( integer|string $id null )

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

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

Параметры

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

Возвращает

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

fieldsource public

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

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

Параметры

string $name
Имя поля, которое нужно получить.
array $conditions необязательный null
SQL-условия (по умолчанию NULL).
string $order необязательный null
SQL-фрагмент ORDER BY.

Возвращает

string|false
Содержимое поля или false, если не найдено.

Ссылка

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

findsource public

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

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

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

Например:

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

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

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

Отключение обратных вызовов

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

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

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

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

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

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

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

Параметры

string $type необязательный 'first'
Тип операции поиска (all / first / count / neighbors / list / threaded)
array $query необязательный array()
Поля параметров (conditions / fields / joins / limit / offset / order / page / group / callbacks)

Возвращает

array|null
Массив записей или Null при ошибке.

Ссылка

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

getAffectedRowssource public

getAffectedRows( )

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

Возвращает

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

getAssociatedsource public

getAssociated( string $type null )

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

Параметры

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

Возвращает

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

getColumnTypesource public

getColumnType( string $column )

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

Параметры

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

Возвращает

string
Тип столбца

getColumnTypessource public

getColumnTypes( )

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

Возвращает

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

getDataSourcesource public

getDataSource( )

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

Возвращает

DataSource
Объект DataSource

getEventManagersource public

getEventManager( )

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

Возвращает

CakeEventManager
CakeEventManager

getIDsource public

getID( integer $list 0 )

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

Параметры

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

Возвращает

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

getInsertIDsource public

getInsertID( )

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

Возвращает

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

getLastInsertIDsource public

getLastInsertID( )

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

Возвращает

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

getNumRowssource public

getNumRows( )

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

Возвращает

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

getVirtualFieldsource public

getVirtualField( string $field null )

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

Параметры

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

Возвращает

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

hasAnysource public

hasAny( array $conditions null )

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

Параметры

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

Возвращает

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

hasFieldsource public

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

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

Параметры

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

Возвращает

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

hasMethodsource public

hasMethod( string $method )

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

Параметры

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

Возвращает

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

implementedEventssource public

implementedEvents( )

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

Возвращает

array
массив

Реализация

CakeEventListener::implementedEvents()

invalidFieldssource public

invalidFields( array|string $options array() )

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

Дополнительно заполняет свойство validationErrors модели тем же массивом.

Параметры

массив|строка $options необязательно array()
Необязательный массив дополнительных параметров, которые будут доступны в обратном вызове 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()
Ключи объединения, которые необходимо объединить с запрошенными ключами

Возвращает

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-й аргумент предоставлен, булева метка для включения/выключения кэширования запросов.

Параметры

строка $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
END_OF_DOCUMENT_MARKER

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, либо массив. Если 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, массив($options)
Model.afterSave $this, массив($created, $options)

saveAllsource public

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

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

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

Параметры

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

Параметры

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

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

mixed
Если атомарно: 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 )

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

Параметры

строка $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

saveManysource public

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

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

Параметры

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

Параметры

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

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

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

Исключения

PDOException
PDOException

Ссылка

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

schemasource public

schema( boolean|string $field false )

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

Параметры

boolean|строка $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 в качестве значения.)

Параметры

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

Возвращает

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

Ссылка

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

setDataSourcesource public

setDataSource( string $dataSource null )

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

Параметры

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

Исключения

MissingConnectionException
MissingConnectionException

setInsertIDsource public

setInsertID( integer|string $id )

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

Параметры

integer|string $id
ID последней вставленной записи

setSourcesource public

setSource( string $tableName )

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

Параметры

string $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()

Параметры

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

updateAllsource public

updateAll( array $fields , mixed $conditions true )

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

Параметры

array $fields
Набор полей и значений, индексированных по полям. Поля обрабатываются как SQL фрагменты, для вставки литерных значений вручную экранируйте данные.
mixed $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 )

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

Параметры

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

validateAssociatedsource public

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

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

Параметры

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

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

Параметры

array $data
$data Данные записи для проверки. Должен быть массивом, индексированным по имени ассоциации.
array $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 перед передачей его этому методу

Параметры

array $data
$data Данные записи для проверки. Должен быть массивом с числовыми индексами
array $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() для установки активных данных.

Параметры

array $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/строка/массив $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
Имя этого класса

Сводка свойств

$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

$actsAssource

public array

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

public $actsAs = array('Translate', 'MyBehavior' => array('setting1' => 'value1'))

Ссылка

http://book.cakephp.org/2.0/en/models/behaviors.html#using-behaviors
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: 'User.active = 1' всегда лучше, чем просто 'active = 1'.
  • type: тип соединения, используемого в запросе SQL. По умолчанию LEFT, но в некоторых случаях может потребоваться INNER (чтобы вернуть все записи из основных и связанных моделей или ничего, если нет соответствий, особенно эффективно при использовании условий).
  • fields: список полей, которые нужно получить при извлечении данных связанной модели. По умолчанию возвращаются все поля.
  • order: фрагмент SQL, определяющий порядок сортировки возвращаемых строк связанной модели.
  • counterCache: если установлено в true, связанная модель автоматически увеличивает или уменьшает поле "[имя_модели_в_единственном_числе]_count" во внешней таблице при выполнении save() или delete(). Если это строка, то это имя поля, которое нужно использовать. Значение в поле счётчика представляет количество связанных строк.
  • counterScope: необязательный массив условий, используемый для обновления поля счётчика.

Ссылка

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

$cacheQueriessource

public boolean

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

Ссылка

http://book.cakephp.org/2.0/en/models/model-attributes.html#cachequeries
false

$cacheSourcessource

public boolean

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

true

$datasource

public array

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

Ссылка

http://book.cakephp.org/2.0/en/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

$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: имя класса модели, ассоциированной с текущей моделью. Если вы определяете отношение 'Пользователь имеет много Комментариев', ключ 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: имя класса модели, ассоциированной с текущей моделью. Если вы определяете отношение 'Пользователь имеет один Профиль', ключ 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

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

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/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, после find будет передан $results в согласованном формате в случае, если $primary равно false. Формат будет следующим.

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

$useDbConfigsource

public string

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

Значение должно быть именем атрибута, определенным в 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 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/en/models/model-attributes.html#validate
http://book.cakephp.org/2.0/en/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/en/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-Model.html

Spec-Zone.ru

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