Spec-Zone.ru › CakePHP 2.7

Класс CakeTestModel

Модель для расширения, помогающая при тестировании.

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

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

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

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

Устанавливает порядок по умолчанию для модели, чтобы избежать проблем с тестами из-за неправильного порядка, когда порядок не определён в методах поиска. Постгрес может возвращать результаты в любом порядке, который он считает подходящим, если он не указан

Параметры

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

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

Model::__construct()

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

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

Переопределение save() для установки CakeTestSuiteDispatcher::date() в качестве форматера для полей created, modified и updated

Параметры

array $data необязательно null
Данные для сохранения
boolean|array $validate необязательно true
Проверка или опции.
array $fieldList необязательно array()
Список разрешённых полей

Возвращает

mixed
смешанное значение

Выбрасывает

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

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

Model::save()

Наследованные методы от Модель

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

__call( string $method , array $params )

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

Параметры

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

Возвращает

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

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

__get( string $name )

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

Параметры

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

Возвращает

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

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

__isset( string $name )

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

Параметры

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

Возвращает

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

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

_addToWhiteList( string $key , array $options )

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

Параметры

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

Возвращает

array
опции

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

_clearCache( string $type null )

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

Параметры

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

Возвращает

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

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

_collectForeignKeys( string $type 'belongsTo' )

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

Параметры

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

Возвращает

array
массив

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

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

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

Параметры

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

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

_createLinks( )

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

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

_deleteDependent( string $id , boolean $cascade )

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

Параметры

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

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

_deleteLinks( string $id )

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

Параметры

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

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

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

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

Параметры

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

Возвращает

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

Выбрасывает

PDOException
PDOException

Ссылка

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

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

_filterResults( array $results , boolean $primary true )

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

Параметры

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

Возвращает

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

Триггеры

Model.afterFind $this, массив($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
массив

См. также

Model::find()

_findCountsource protected

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

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

Параметры

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

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

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

См. также

Model::find()

_findFirstsource protected

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

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

Параметры

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

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

array
массив

См. также

Model::find()

_findListsource protected

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

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

Параметры

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

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

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

См. также

Model::find()

_findNeighborssource protected

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

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

Параметры

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

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

array
массив

_findThreadedsource protected

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

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

Параметры

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

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

array
Результаты в виде потока

_generateAssociationsource protected

_generateAssociation( string $type , string $assocKey )

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

Параметры

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

_isUUIDFieldsource protected

_isUUIDField( string $field )

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

Параметры

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

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

boolean
bool

_normalizeXmlDatasource protected

_normalizeXmlData( array $xml )

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

Параметры

массив $xml
XML как массив

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

array
массив

_prepareUpdateFieldssource protected

_prepareUpdateFields( array $data )

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

Параметры

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

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

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

_readDataSourcesource protected

_readDataSource( string $type , array $query )

Чтение из источника данных

Model::_readDataSource() используется всеми вызовами find() для чтения из источника данных и может быть переопределен для кэширования вызовов источника данных.

protected function _readDataSource($type, $query) {
                $cacheName = md5(json_encode($query));
                $cache = Cache::read($cacheName, 'cache-config-name');
                if ($cache !== false) {
                        return $cache;
                }

                $results = parent::_readDataSource($type, $query);
                Cache::write($cacheName, $results, 'cache-config-name');
                return $results;
}

Параметры

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

См. также

Model::save()

Ссылка

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

afterValidatesource public

afterValidate( )

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

associationssource public

associations( )

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

Возвращает

array
массив

beforeDeletesource public

beforeDelete( boolean $cascade true )

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

Параметры

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

Возвращает

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

Ссылка

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

beforeFindsource public

beforeFind( array $query )

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

Параметры

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

Возвращает

mixed
истина, если операция должна быть продолжена, ложь, если она должна быть прервана; или, изменённые $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
Истина, если операция должна быть продолжена, ложь, если она должна быть прервана

См. также

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

См. также

Model::save()

Ссылка

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

bindModelsource public

bindModel( array $params , boolean $reset true )

Привязка моделей ассоциаций на лету.

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

Пример: Добавление новой привязки 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'
Тип операции поиска (все / первый / подсчёт / соседи / список / нитевой)
массив $query необязательно массив()
Поля опций (условия / поля / соединения / ограничение / смещение / порядок / страница / группа / обратные вызовы)

Возвращает

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

См. также

Model::find()

Триггеры

Model.beforeFind $this, array($query)

clearsource public

clear( )

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

Возвращает

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

См. также

Model::create()

createsource public

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

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

Параметры

boolean|массив $data необязательно массив()
Необязательный массив данных для присвоения модели после её создания. Если null или false, значения по умолчанию схемы не объединяются.
boolean $filterKey необязательно false
Если истина, перезаписывает любой входной первичный ключ пустым значением

Возвращает

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
Истина при успехе

Ссылка

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
Истина при успехе, ложь при неудаче

Ссылка

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

escapeFieldsource public

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

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

Параметры

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

Возвращает

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

existssource public

exists( integer|string $id null )

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

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

Параметры

integer|string $id optional null
ID записи для проверки существования

Возвращает

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

fieldsource public

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

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

Параметры

string $name
Имя поля для получения.
array $conditions optional null
SQL условия (по умолчанию NULL).
string $order optional 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() )

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

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

Например:

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

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

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

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

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

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

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

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

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

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

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

Параметры

string $type optional 'first'
Тип операции поиска (все / первый / счёт / соседи / список / нитевидный)
array $query optional array()
Параметры поиска (conditions / fields / joins / limit / offset / order / page / group / callbacks)

Возвращает

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

Ссылка

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

getAffectedRowssource public

getAffectedRows( )

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

Возвращает

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

getAssociatedsource public

getAssociated( string $type null )

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

Параметры

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

Возвращает

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

getColumnTypesource public

getColumnType( string $column )

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

Параметры

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

Возвращает

string
Тип столбца

getColumnTypessource public

getColumnTypes( )

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

Возвращает

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

getDataSourcesource public

getDataSource( )

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

Возвращает

DataSource
Объект DataSource

getEventManagersource public

getEventManager( )

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

Возвращает

CakeEventManager
CakeEventManager

getIDsource public

getID( integer $list 0 )

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

Параметры

integer $list optional 0
Индекс, на котором находится составной ID

Возвращает

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

getInsertIDsource public

getInsertID( )

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

Возвращает

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

getLastInsertIDsource public

getLastInsertID( )

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

Возвращает

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

getNumRowssource public

getNumRows( )

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

Возвращает

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

getVirtualFieldsource public

getVirtualField( string $field null )

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

Параметры

string $field optional null
Имя поля для поиска

Возвращает

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

hasAnysource public

hasAny( array $conditions null )

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

Параметры

array $conditions optional null
Массив SQL условий

Возвращает

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

hasFieldsource public

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

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

Параметры

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

Возвращает

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

hasMethodsource public

hasMethod( string $method )

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

Параметры

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

Возвращает

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

implementedEventssource public

implementedEvents( )

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

Возвращает

array
массив

Реализация

CakeEventListener::implementedEvents()

invalidFieldssource public

invalidFields( array|string $options array() )

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

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

Параметры

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

Возвращает

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

См. также

Model::validates()

invalidatesource public

invalidate( string $field , mixed $value true )

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

Параметры

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

isForeignKeysource public

isForeignKey( string $field )

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

Параметры

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

Возвращает

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

isUniquesource public

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

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

Может использоваться как метод валидации. Когда используется как метод валидации, параметр $or содержит массив полей, которые нужно валидировать.

Параметры

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

Возвращает

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

isVirtualFieldsource public

isVirtualField( string $field )

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

Параметры

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

Возвращает

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

joinModelsource public

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

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

Параметры

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

Возвращает

array
массив

onErrorsource public

onError( )

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

Ссылка

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

querysource public

query( string $sql )

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

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

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

Параметры

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

Возвращает

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

Ссылка

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

readsource public

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

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

Параметры

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

Возвращает

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

Ссылка

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

resetAssociationssource public

resetAssociations( )

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

Возвращает

boolean
Успешно

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|array $validate необязательно false
Либо boolean, либо массив. Если boolean, указывает, нужно ли валидировать перед сохранением. Если массив, позволяет управлять параметрами 'validate', 'callbacks' и 'counterCache'. Подробности каждого параметра см. в Model::save().

Возвращает

boolean|array
См. Model::save() False при ошибке или массив данных модели при успехе.

См. также

Model::save()

Ссылка

http://book.cakephp.org/2.0/ru/models/saving-your-data.html#model-savefield-string-fieldname-string-fieldvalue-validate-false

saveManysource public

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

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

Параметры

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

Параметры

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

Возвращает

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

Выбрасывает

PDOException
PDOException

Ссылка

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

schemasource public

schema( boolean|string $field false )

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

Параметры

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

Возвращает

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

setsource public

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

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

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

Параметры

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

Возвращает

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

Ссылка

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

setDataSourcesource public

setDataSource( string $dataSource null )

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

Параметры

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

Выбрасывает

MissingConnectionException
MissingConnectionException

setInsertIDsource public

setInsertID( integer|string $id )

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

Параметры

целое число|строка $id
ID последней вставленной записи

setSourcesource public

setSource( string $tableName )

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

Параметры

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

Выбрасывает

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

unbindModelsource public

unbindModel( array $params , boolean $reset true )

Отключить ассоциации на лету.

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

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

$this->User->unbindModel(array('hasMany' => array('SupportRequest'))); Или альтернативно: $this->User->unbindModel(array('hasMany' => 'SupportRequest'));

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

Параметры

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

Возвращает

boolean
Успех

Ссылка

http://book.cakephp.org/2.0/ru/models/associations-linking-models-together.html#creating-and-destroying-associations-on-the-fly

updateAllsource public

updateAll( array $fields , mixed $conditions true )

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

Параметры

массив $fields
Набор полей и значений, индексированных по полям. Поля обрабатываются как SQL-фрагменты. Для вставки буквальных значений вручную убедитесь, что данные экранированы.
смешанный тип $conditions необязательно true
Условия соответствия, true для всех записей

Возвращает

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

Ссылка

http://book.cakephp.org/2.0/ru/models/saving-your-data.html#model-updateall-array-fields-mixed-conditions

updateCounterCachesource public

updateCounterCache( array $keys array() , boolean $created false )

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

Параметры

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

validateAssociatedsource public

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

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

Параметры

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

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

Параметры

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

Возвращает

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

validateManysource public

validateMany( array $data , array $options array() )

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

Параметры

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

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

Параметры

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

Возвращает

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

validatessource public

validates( array $options array() )

Возвращает true, если все поля проходят валидацию. Также валидирует ассоциации hasAndBelongsToMany, которые используют ключ 'with'. Так как _saveMulti не может прервать операцию сохранения.

Валидирует текущие данные. Используйте Model::set() или Model::create() для установки активных данных.

Параметры

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

Возвращает

boolean
True, если ошибок нет

validatorsource public

validator( ModelValidator $instance null )

Возвращает экземпляр валидатора модели для этого класса.

Параметры

ModelValidator $instance необязательно null
Экземпляр валидатора модели. Если null, будет создан новый экземпляр ModelValidator, используя текущий объект модели.

Возвращает

ModelValidator
ModelValidator

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

Вызывает метод на этом объекте с указанными параметрами. Предоставляет OO-обёртку для 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
Успешность записи в журнал
END_OF_DOCUMENT_MARKER ```

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 необязательно массив()
Если массив включает ключ "return", он устанавливает AutoRender в значение true. Также может использоваться для отправки данных GET/POST и именованных/переданных аргументов.

Возвращает

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

toStringsource public

toString( )

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

Возвращает

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

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

$cacheSourcessource

public boolean

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

false

$useDbConfigsource

public строка

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

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

Ссылка

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

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

$Behaviorssource

public BehaviorCollection

Содержит объекты поведения, в настоящее время привязанные к этой модели.

null

$__backAssociationsource

public array

Временное хранение ассоциаций моделей для динамической (от)вязки.

array()

$__backContainableAssociationsource

public array

Обратная ассоциация containable

array()

$__backInnerAssociationsource

public array

Обратная внутренняя ассоциация

array()

$__backOriginalAssociationsource

public array

Обратная исходная ассоциация

array()

$__safeUpdateModesource

public boolean

Режим безопасного обновления. Если true, это предотвращает Model::save() от генерации запроса с WHERE 1 = 1 при проблемах с конкуренцией.

false

$_associationKeyssource

protected array

Список ключевых ассоциаций по умолчанию.

array(
    'belongsTo' => array('className', 'foreignKey', 'conditions', 'fields', 'order', 'counterCache'),
    'hasOne' => array('className', 'foreignKey', 'conditions', 'fields', 'order', 'dependent'),
    'hasMany' => array('className', 'foreignKey', 'conditions', 'fields', 'order', 'limit', 'offset', 'dependent', 'exclusive', 'finderQuery', 'counterQuery'),
    'hasAndBelongsToMany' => array('className', 'joinTable', 'with', 'foreignKey', 'associationForeignKey', 'conditions', 'fields', 'order', 'limit', 'offset', 'unique', 'finderQuery')
)

$_associationssource

protected array

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

array('belongsTo', 'hasOne', 'hasMany', 'hasAndBelongsToMany')

$_eventManagersource

protected CakeEventManager

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

null

$_insertIDsource

protected integer

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

null

$_schemasource

protected array

Метаданные таблицы для каждого поля.

null

$_sourceConfiguredsource

protected boolean

Настроен ли источник данных.

См.

Model::getDataSource()
false

$_validatorsource

protected ModelValidator

Экземпляр ModelValidator

null

$actsAssource

public array

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

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

Ссылка

http://book.cakephp.org/2.0/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 может быть полезен, когда вы хотите получить все поля из основной и связанной моделей или ничего (эффективно при использовании с условиями). (Примечание: значение типа в нижнем регистре — т.е. 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

$datasource

public array

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

Ссылка

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

$displayFieldsource

public string

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

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

Ссылка

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

$findMethodssource

public массив

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

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

$findQueryTypesource

public строка

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

null

$hasAndBelongsToManysource

public массив

Подробный список ассоциаций 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 массив

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

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

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

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

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

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

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

Ссылка

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

$hasOnesource

public массив

Подробный список ассоциаций 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'.
  • foreignKey: фрагмент 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 смешанный

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

false

$namesource

public строка

Имя модели.

Ссылка

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

$ordersource

public строка

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

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

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

null

$primaryKeysource

public строка

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

Ссылка

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

$recursivesource

public integer

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

Ссылка

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

$schemaNamesource

public string

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

null

$tablesource

public string

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

false

$tablePrefixsource

public string

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

Ссылка

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

$tableToModelsource

public array

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

array()

$useConsistentAfterFindsource

public boolean

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

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

$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-CakeTestModel.html

Spec-Zone.ru

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