Spec-Zone.ru › CakePHP 2.7

Класс AcoAction

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

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

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

__callисточник public

__call( string $method , array $params )

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

Параметры

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

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

Параметры

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

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

Параметры

массив $results
Результаты для фильтрации.
логическое $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
Тип операции find (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
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 необязательно массив()
Поля опций (условия / поля / соединения / лимит / смещение / порядок / страница / группировка / обратные вызовы)

Возвращает

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

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

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

Например:

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

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

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

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

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

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

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

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

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

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

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

Параметры

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

Возвращает

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

Ссылка

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

getAffectedRowssource public

getAffectedRows( )

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

Возвращает

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

getAssociatedsource public

getAssociated( string $type null )

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

Параметры

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

Возвращает

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

getColumnTypesource public

getColumnType( string $column )

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

Параметры

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

Возвращает

string
Тип столбца

getColumnTypessource public

getColumnTypes( )

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

Возвращает

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

getDataSourcesource public

getDataSource( )

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

Возвращает

DataSource
Объект DataSource

getEventManagersource public

getEventManager( )

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

Возвращает

CakeEventManager
CakeEventManager

getIDsource public

getID( integer $list 0 )

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

Параметры

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

Возвращает

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

getInsertIDsource public

getInsertID( )

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

Возвращает

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

getLastInsertIDsource public

getLastInsertID( )

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

Возвращает

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

getNumRowssource public

getNumRows( )

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

Возвращает

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

getVirtualFieldsource public

getVirtualField( string $field null )

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

Параметры

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

Возвращает

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

hasAnysource public

hasAny( array $conditions null )

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

Параметры

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

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

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

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

Параметры

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

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

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

Ссылка

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

readsource public

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

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

Параметры

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

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

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

Ссылка

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

resetAssociationssource public

resetAssociations( )

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

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

boolean
Успех

savesource public

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

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

Параметры

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

Возвращает

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

Выбрасывает

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

Ссылка

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

Триггеры

Model.beforeSave $this, array($options)
Model.afterSave $this, array($created, $options)

saveAllsource public

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

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

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

Параметры

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

Параметры

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

Возвращает

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

Ссылка

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

saveAssociatedsource public

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

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

Параметры

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

Параметры

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

Возвращает

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

Выбрасывает

PDOException
PDOException

Ссылка

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

saveFieldsource public

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

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

Параметры

строка $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
Если atomic: true при успехе или false при ошибке. В противном случае: массив, аналогичный массиву $data, переданному, но значения установлены в true/false в зависимости от того, успешно ли была сохранена каждая запись.

Выбрасывает

PDOException
PDOException

Ссылка

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

schemasource public

schema( boolean|string $field false )

Возвращает массив метаданных таблицы (имена и типы столбцов) из базы данных. $field => keys(type, null, default, key, length, extra)

Параметры

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

Возвращает

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

setsource public

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

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

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

Параметры

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 )

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

Параметры

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

setSourcesource public

setSource( string $tableName )

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

Параметры

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

Выбрасывает

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

unbindModelsource public

unbindModel( array $params , boolean $reset true )

Отключает ассоциации динамически.

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

Пример: Отключить связанную модель Support request, чтобы временно уменьшить нагрузку на модель 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 при успехе/неудачи, или содержимое отрисованного действия, если 'return' установлен в $extra.

toStringsource public

toString( )

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

Возвращает

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

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

$belongsTosource

public массив

Действия ACO принадлежат ACO

array('Aco')

$namesource

public строка

Имя модели

'AcoAction'

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

$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 выпадающих списков.

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

Ссылка

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

$findMethodssource

public array

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

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

$findQueryTypesource

public string

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

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

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

$recursivesource

public integer

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

Ссылка

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

$schemaNamesource

public string

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

null

$tablesource

public string

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

false

$tablePrefixsource

public string

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

Ссылка

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

$tableToModelsource

public array

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

array()

$useConsistentAfterFindsource

public boolean

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

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

$useDbConfigsource

public string

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

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

Ссылка

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

$useTablesource

public string

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

Ссылка

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

$validatesource

public array

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ссылка

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

$validationDomainsource

public string

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

null

$validationErrorssource

public array

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

array()

$virtualFieldssource

public array

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

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

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

Ссылка

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

$whitelistsource

public array

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

array()

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

Spec-Zone.ru

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