Spec-Zone.ru › CakePHP 2.7

Класс I18nModel

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

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

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

__callsource public

__call( string $method , array $params )

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

Параметры

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

Возвращает

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

__constructsource 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() следует учитывать необходимость передачи всех трёх аргументов в parent::__construct($id, $table, $ds);

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

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

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

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

Параметры

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

Заменяет

Object::__construct()

__getsource public

__get( string $name )

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

Параметры

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

Возвращает

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

__issetsource public

__isset( string $name )

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

Параметры

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

Возвращает

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

_addToWhiteListsource protected

_addToWhiteList( string $key , array $options )

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

Параметры

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

Возвращает

array
параметры

_clearCachesource protected

_clearCache( string $type null )

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

Параметры

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

Возвращает

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

_collectForeignKeyssource protected

_collectForeignKeys( string $type 'belongsTo' )

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

Параметры

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

Возвращает

array
массив

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

_createLinkssource protected

_createLinks( )

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

_deleteDependentsource protected

_deleteDependent( string $id , boolean $cascade )

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

Параметры

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

_deleteLinkssource protected

_deleteLinks( string $id )

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

Параметры

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

_doSavesource 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

_filterResultssource protected

_filterResults( array $results , boolean $primary true )

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

Параметры

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

Возвращает

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

Вызывает

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

_findAllsource protected

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

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

Параметры

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

Возвращает

array
массив

См. также

Model::find()

_findCountsource protected

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

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

Параметры

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

Возвращает

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

См. также

Model::find()

_findFirstsource protected

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

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

Параметры

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

Возвращает

array
массив

См. также

Model::find()

_findListsource protected

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

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

Параметры

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

Возвращает

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

См. также

Model::find()

_findNeighborssource protected

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

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

Параметры

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

Возвращает

array
массив

_findThreadedsource protected

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

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

Параметры

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

Возвращает

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

_generateAssociationsource protected

_generateAssociation( string $type , string $assocKey )

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

Параметры

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

_isUUIDFieldsource protected

_isUUIDField( string $field )

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

Параметры

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

Возвращает

boolean
bool

_normalizeXmlDatasource protected

_normalizeXmlData( array $xml )

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

Параметры

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

Возвращает

array
массив

_prepareUpdateFieldssource protected

_prepareUpdateFields( array $data )

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

Параметры

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

Возвращает

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

_readDataSourcesource protected

_readDataSource( string $type , array $query )

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

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

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

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

Параметры

строка $type
Тип операции 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.

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

Параметры

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

_setsource protected

_set( array $properties array() )

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

Параметры

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

_stopsource protected

_stop( integer|string $status 0 )

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

Параметры

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

dispatchMethodsource public

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

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

Параметры

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

Возвращает

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

logsource public

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

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

Параметры

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

Возвращает

boolean
Успешность записи в журнал

requestActionsource public

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

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

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

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

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

Параметры

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

Возвращает

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

toStringsource public

toString( )

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

Возвращает

string
Название данного класса

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

$displayFieldsource

public строка

Поле отображения

'field'

$namesource

public строка

Имя модели

'I18nModel'

$useTablesource

public строка

Имя таблицы

'i18n'

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

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

null

$_schemasource

protected array

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

null

$_sourceConfiguredsource

protected boolean

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

См.

Model::getDataSource()
false

$_validatorsource

protected ModelValidator

Экземпляр ModelValidator

null

$actsAssource

public array

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

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

Ссылка

http://book.cakephp.org/2.0/ru/models/behaviors.html#using-behaviors
null

$aliassource

public string

Псевдоним модели.

null

$belongsTosource

public array

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

Основные примеры использования

public $belongsTo = array('Group', 'Department');

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

public $belongsTo = array(
    'Group',
    'Department' => array(
        'className' => 'Department',
        'foreignKey' => 'department_id'
    )
);

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

  • className: имя класса модели, связанной с текущей моделью. Если вы определяете отношение 'Profile belongsTo User', ключ className должен быть равен 'User'.
  • foreignKey: имя внешнего ключа в текущей модели. Это особенно удобно, если вам нужно определить несколько отношений belongsTo. Значение по умолчанию для этого ключа — подчеркнутое, единственное имя другой модели, дополненное '_id'.
  • conditions: фрагмент SQL, используемый для фильтрации записей связанной модели. Лучше использовать имена моделей в фрагментах SQL: 'User.active = 1' лучше, чем просто 'active = 1'.
  • type: тип соединения для использования в запросе SQL, по умолчанию LEFT, что может не подойти во всех случаях. INNER может быть полезен, когда вам нужны все данные из основных и связанных моделей или ничего вообще!(эффективно, когда используется с некоторыми условиями, конечно). (Примечание: значение type в нижнем регистре - например, left, inner)
  • fields: список полей, которые необходимо извлечь при получении данных связанной модели. По умолчанию возвращаются все поля.
  • order: фрагмент SQL, определяющий порядок сортировки возвращаемых связанных строк.
  • counterCache: если установлено в true, связанная модель автоматически увеличит или уменьшит поле "[имя_модели]_count" во внешней таблице всякий раз, когда вы выполните save() или delete(). Если это строка, то это имя поля для использования. Значение в поле счетчика представляет количество связанных строк.
  • counterScope: необязательный массив условий для обновления поля счетчика.

Ссылка

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

$cacheQueriessource

public boolean

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

Ссылка

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

$cacheSourcessource

public boolean

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

true

$datasource

public array

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

Ссылка

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

$findMethodssource

public array

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

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

$findQueryTypesource

public string

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

null

$hasAndBelongsToManysource

public array

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

Основные примеры использования

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

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

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

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

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

Ссылка

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

$hasManysource

public array

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

Основные примеры использования

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

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

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

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

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

Ссылка

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

$hasOnesource

public array

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

Основные примеры использования

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

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

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

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

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

Ссылка

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

$idsource

public mixed

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

false

$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 равен false. Формат будет следующим.

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

$useDbConfigsource

public string

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

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

Ссылка

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

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

Spec-Zone.ru

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