Spec-Zone.ru › CakePHP 2.7

Класс AppModel

Модель приложения для Cake.

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

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

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

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

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

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

__call( string $method , array $params )

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

Параметры

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

Возвращает

mixed
Значение, возвращаемое вызванным методом

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

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

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

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

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

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

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

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

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

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

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

Параметры

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

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

Object::__construct()

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

__get( string $name )

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

Параметры

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

Возвращает

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

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

__isset( string $name )

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

Параметры

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

Возвращает

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

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

_addToWhiteList( string $key , array $options )

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

Параметры

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

Возвращает

array
Опции

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

_clearCache( string $type null )

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

Параметры

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

Возвращает

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

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

_collectForeignKeys( string $type 'belongsTo' )

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

Параметры

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

Возвращает

array
Массив

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

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

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

Параметры

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

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

_createLinks( )

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

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

_deleteDependent( string $id , boolean $cascade )

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

Параметры

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

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

_deleteLinks( string $id )

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

Параметры

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

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

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

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

Параметры

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

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

Параметры

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

Возвращает

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

Вызывает

Model.afterFind $this, array($results, $primary)
END_OF_DOCUMENT_MARKER

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

Возвращает

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
Истина, если это сохранение создало новую запись
массив $options необязательно array()
Опции, переданные из Model::save().

См. также

Model::save()

Ссылка

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

afterValidatesource public

afterValidate( )

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

associationssource public

associations( )

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

Возвращает

array
массив

beforeDeletesource public

beforeDelete( boolean $cascade true )

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

Параметры

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

Возвращает

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

Ссылка

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

beforeFindsource public

beforeFind( array $query )

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

Параметры

массив $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, чтобы остановить сохранение.

Параметры

массив $options необязательно массив()
Опции, переданные из 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.

Параметры

массив $options необязательно массив()
Опции, переданные из 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() для этой модели.

Параметры

массив $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() )

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

Параметры

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

Возвращает

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

См.

Model::find()

Триггеры

Model.beforeFind $this, массив($query)

clearsource public

clear( )

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

Возвращает

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

См.

Model::create()

createsource public

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

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

Параметры

boolean|массив $data необязательно массив()
Необязательный массив данных для присвоения модели после её создания. Если 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 )

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

Параметры

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

Возвращает

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

deletesource public

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

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

Параметры

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

Возвращает

boolean
True при успехе

Ссылка

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

Триггеры

Model.beforeDelete $this, массив($cascade)
Model.afterDelete $this

deleteAllsource public

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

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

Параметры

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

Возвращает

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

Ссылка

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

escapeFieldsource public

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

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

Параметры

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

Возвращает

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

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

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

Используется для выполнения операций поиска, где первый аргумент — тип операции поиска (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) имеет свои собственные значения возврата.

Параметры

строка $type необязательный 'first'
Тип операции поиска (all / first / count / neighbors / list / threaded)
массив $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 )

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

Параметры

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

Возвращает

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

getColumnTypesource public

getColumnType( string $column )

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

Параметры

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

Возвращает

string
Тип столбца

getColumnTypessource public

getColumnTypes( )

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

Возвращает

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

getDataSourcesource public

getDataSource( )

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

Возвращает

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, если виртуальных полей нет.
END_OF_DOCUMENT_MARKER

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 — строка, возвращает логическое значение, указывающее, существует ли поле. Если $name — массив имён полей, возвращает первое существующее поле или false, если ни одно поле не существует.

hasMethodsource public

hasMethod( string $method )

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

Параметры

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

Возвращает

boolean
True, если метод вызываемый.

implementedEventssource public

implementedEvents( )

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

Возвращает

array
массив

Реализация

CakeEventListener::implementedEvents()

invalidFieldssource public

invalidFields( array|string $options array() )

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

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

Параметры

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

Возвращает

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

См.

Model::validates()

invalidatesource public

invalidate( string $field , mixed $value true )

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

Параметры

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

isForeignKeysource public

isForeignKey( string $field )

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

Параметры

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

Возвращает

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

isUniquesource public

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

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

Может быть использован как метод валидации. При использовании в качестве метода валидации параметр $or содержит массив полей, подлежащих валидации.

Параметры

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

Возвращает

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

isVirtualFieldsource public

isVirtualField( string $field )

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

Параметры

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

Возвращает

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

joinModelsource public

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

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

Параметры

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

Возвращает

array
массив

onErrorsource public

onError( )

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

Ссылка

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

querysource public

query( string $sql )

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

Метод может иметь 2 и 3 параметра.

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

Параметры

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

Возвращает

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

Ссылка

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

readsource public

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

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

Параметры

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

Возвращает

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

Ссылка

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

resetAssociationssource public

resetAssociations( )

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

Возвращает

boolean
Успешно
END_OF_DOCUMENT_MARKER

savesource public

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

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

Параметры

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

Возвращает

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

Исключения

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

Ссылка

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

Триггеры

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

saveAllsource public

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

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

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

Параметры

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

Параметры

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

Возвращает

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

Ссылка

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

saveAssociatedsource public

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

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

Параметры

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

Параметры

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

Возвращает

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

Исключения

PDOException
PDOException

Ссылка

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

saveFieldsource public

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

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

Параметры

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

Параметры

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

Возвращает

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

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, ассоциация не будет сброшена к исходным значениям, определённым в модели.

Пример: отключение ассоциации запроса Model Support для временного облегчения модели User:

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

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

Параметры

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

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

_mergeVarssource protected

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

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

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

Параметры

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

_setsource protected

_set( array $properties array() )

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

Параметры

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

_stopsource protected

_stop( integer|string $status 0 )

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

Параметры

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

dispatchMethodsource public

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

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

Параметры

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

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

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

logsource public

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

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

Параметры

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

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

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

requestActionsource public

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

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

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

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

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

Параметры

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

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

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

toStringsource public

toString( )

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

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

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

Свойства, унаследованные от 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

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

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

$cacheQueriessource

public boolean

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

Ссылка

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

$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 блоков SELECT.

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

Ссылка

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

$findMethodssource

public array

Список допустимых опций метода поиска, предоставляемых в качестве первого параметра find().

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

$findQueryTypesource

public string

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

null

$hasAndBelongsToManysource

public array

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

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

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

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

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

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

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

Ссылка

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

$hasManysource

public array

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

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

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

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

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

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

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

Ссылка

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

$hasOnesource

public array

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

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

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

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

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

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

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

Имя подключения 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 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-AppModel.html

Spec-Zone.ru

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