Spec-Zone.ru › CakePHP 2.8

Класс Model

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

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

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

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

  • AclNode
  • AppModel

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

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

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

  • $Behaviors public
    BehaviorCollection
    Содержит объекты поведения, в настоящее время привязанные к этой модели.
  • $__backAssociation public
    array
    Временно хранит ассоциации модели, чтобы обеспечить динамическую привязку (отвязку).
  • $__backContainableAssociation public
    array
    Связь, поддерживающая обратное containment
  • $__backInnerAssociation public
    array
    Обратная внутренняя ассоциация
  • $__backOriginalAssociation public
    array
    Обратная исходная ассоциация
  • $__safeUpdateMode public
    boolean

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

  • $_associationKeys protected
    array
    Список по умолчанию ключей ассоциации.
  • $_associations protected
    array
    Хранит предоставленные/сгенерированные имена ключей ассоциации и другие данные для всех ассоциаций.
  • $_eventManager protected
    CakeEventManager

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

  • $_insertID protected
    integer
    ID записи модели, которая была последней вставлена.
  • $_schema protected
    array
    Метаданные таблицы по отдельным полям.
  • $_sourceConfigured protected
    boolean
    Настроен ли источник данных.
  • $_validator protected
    ModelValidator
    Экземпляр ModelValidator
  • $actsAs public
    array

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

  • $alias public
    string
    Псевдоним имени модели.
  • $belongsTo public
    array
    Подробный список ассоциаций belongsTo.
  • $cacheQueries public
    boolean

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

  • $cacheSources public
    boolean
    Включить или отключить кэширование источников для этой модели.
  • $data public
    array
    Контейнер данных, которые эта модель получает из постоянного хранилища (обычно базы данных).
  • $displayField public
    string
    Пользовательское имя поля отображения. Поля отображения используются Scaffold, в элементах OPTION выпадающих списков.
  • $findMethods public
    array
    Список допустимых опций метода поиска, передаваемых в качестве первого параметра к find().
  • $findQueryType public
    string
    Тип запроса поиска, который выполняется в настоящее время.
  • $hasAndBelongsToMany public
    array
    Подробный список ассоциаций hasAndBelongsToMany.
  • $hasMany public
    array
    Подробный список ассоциаций hasMany.
  • $hasOne public
    array
    Подробный список ассоциаций hasOne.
  • $id public
    mixed

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

  • $name public
    string
    Имя модели.
  • $order public
    string
    Имя(на) столбца(ов) и направление(ия) сортировки результатов поиска по умолчанию.
  • $plugin public
    string
    Плагин, к которому принадлежит модель.
  • $primaryKey public
    string
    Имя поля первичного ключа для данной модели.
  • $recursive public
    integer

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

  • $schemaName public
    string
    Физическое имя схемы/базы данных для этой модели. Автоматически устанавливается при создании модели.
  • $table public
    string
    Имя таблицы для этой модели.
  • $tablePrefix public
    string
    Префикс имени таблицы базы данных для таблиц в модели.
  • $tableToModel public
    array
    Список имён таблиц, включённых в описание модели. Используется для ассоциаций.
  • $useConsistentAfterFind public
    boolean

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

  • $useDbConfig public
    string
    Имя соединения DataSource, которое использует эта модель.
  • $useTable public
    string
    Пользовательское имя таблицы базы данных, или null/false, если ассоциация таблицы не требуется.
  • $validate public
    array

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

  • $validationDomain public
    string
    Имя домена строки валидации, которое использовать при переводе ошибок валидации.
  • $validationErrors public
    array
    Список ошибок валидации.
  • $virtualFields public
    array

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

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

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

  • __call() public

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

  • __construct() public
    Конструктор. Связывает таблицу базы данных модели с объектом.
  • __get() public
    Возвращает значение запрошенной переменной, если она может быть установлена с помощью __isset().
  • __isset() public
    Обрабатывает леничную загрузку ассоциаций модели, проверяя массивы ассоциаций на наличие запрошенной переменной.
  • _addToWhiteList() protected
    Вспомогательный метод для saveAll() и аналогичных, для добавления внешнего ключа в список полей.
  • _clearCache() protected
    Очищает кэш для этой модели.
  • _collectForeignKeys() protected
    Сбор внешних ключей из ассоциаций.
  • _constructLinkedModel() protected
    Защищённый вспомогательный метод для создания связанных моделей заданного класса.
  • _createLinks() protected
    Создание набора ассоциаций.
  • _deleteDependent() protected
    Каскадное удаление моделей через связанные записи hasMany и hasOne дочерних записей.
  • _deleteLinks() protected
    Каскадное удаление моделей через ключи соединения HABTM.
  • _doSave() protected

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

  • _filterResults() protected
    Пропускает результаты запроса через методы модели и поведения afterFind().
  • _findAll() protected
    Обрабатывает логику фильтрации before/after для операций find('all'). Вызывается только методом Model::find().
  • _findCount() protected
    Обрабатывает логику фильтрации before/after для операций find('count'). Вызывается только методом Model::find().
  • _findFirst() protected
    Обрабатывает логику фильтрации before/after для операций find('first'). Вызывается только методом Model::find().
  • _findList() protected
    Обрабатывает логику фильтрации before/after для операций find('list'). Вызывается только методом Model::find().
  • _findNeighbors() protected

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

  • _findThreaded() protected

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

  • _generateAssociation() protected
    Построение ассоциации на основе массива из строки.
  • _isUUIDField() protected
    Проверка, является ли переданное поле полем UUID.
  • _normalizeXmlData() protected
    Нормализация Xml::toArray() для использования в Model::save()
  • _prepareUpdateFields() protected
    Вспомогательный метод для Model::updateCounterCache(). Проверяет поля, которые будут обновлены, для
  • _readDataSource() protected
    Чтение из источника данных.
  • _saveMulti() protected
    Сохранение данных модели hasAndBelongsToMany в базу данных.
  • _setAliasData() protected
    Перемещение значений в псевдоним.
  • afterDelete() public
    Вызывается после каждой операции удаления.
  • afterFind() public

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

  • afterSave() public
    Вызывается после каждой успешной операции сохранения.
  • afterValidate() public
    Вызывается после проверки данных на ошибки.
  • associations() public
    Получение ассоциаций.
  • beforeDelete() public
    Вызывается перед каждой операцией удаления.
  • beforeFind() public

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

  • beforeSave() public

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

  • beforeValidate() public

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

  • bindModel() public
    Связывание ассоциаций модели на лету.
  • buildQuery() public
    Строит массив запроса, который используется источником данных для генерации запроса к данным.
  • clear() public
    Данная функция — удобная обертка для создания (false) и, как следует из названия, очищает id, данные и ошибки валидации.
  • create() public

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

  • deconstruct() public
    Разбирает сложный тип данных (массив или объект) в единственное значение поля.
  • delete() public
    Удаляет запись для данного ID. Если ID не указан, используется текущий ID. Возвращает true при успехе.
  • deleteAll() public
    Удаляет несколько записей модели на основе набора условий.
  • escapeField() public

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

  • exists() public
    Возвращает true, если запись с указанным ID существует.
  • field() public

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

  • find() public
    Выполняет запрос к источнику данных и возвращает массив результатов.
  • getAffectedRows() public
    Возвращает количество строк, затронутых последним запросом.
  • getAssociated() public
    Получает все модели, с которыми связана данная модель.
  • getColumnType() public
    Возвращает тип столбца столбца в модели.
  • getColumnTypes() public
    Возвращает ассоциативный массив имён полей и типов столбцов.
  • getDataSource() public
    Получает DataSource, к которому привязана данная модель.
  • getEventManager() public

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

  • getID() public
    Возвращает ID текущей записи.
  • getInsertID() public
    Возвращает ID последней записи, вставленной этой моделью.
  • getLastInsertID() public
    Возвращает ID последней записи, вставленной этой моделью.
  • getNumRows() public
    Возвращает количество строк, возвращённых последним запросом.
  • getVirtualField() public
    Возвращает выражение для виртуального поля модели.
END_OF_DOCUMENT_MARKER
  • hasAny() public
    Возвращает true, если существует запись, удовлетворяющая заданным условиям.
  • hasField() public
    Возвращает true, если указанное поле существует в таблице базы данных модели.
  • hasMethod() public

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

  • implementedEvents() public

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

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

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

  • isForeignKey() public
    Возвращает true, если заданное имя поля является внешним ключом в этой модели.
  • isUnique() public
    Возвращает false, если какие-либо переданные поля совпадают с любыми (по умолчанию, со всеми, если $or = false) их соответствующими значениями.
  • isVirtualField() public
    Возвращает true, если переданное поле является виртуальным полем модели.
  • joinModel() public

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

  • onError() public
    Вызывается при возникновении ошибки на уровне источника данных.
  • query() public
    Возвращает результат набора данных для заданного SQL-запроса. Пользовательские SQL-запросы должны выполняться с помощью этого метода.
  • read() public

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

  • resetAssociations() public

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

  • save() public

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

  • saveAll() public

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

  • saveAssociated() public
    Сохраняет одну запись, а также все ее связанные записи.
  • saveField() public

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

  • saveMany() public
    Сохраняет несколько отдельных записей для одной модели.
  • schema() public

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

  • set() public
    Эта функция выполняет два действия:
  • setDataSource() public
    Устанавливает источник данных, к которому привязана эта модель.
  • setInsertID() public
    Устанавливает идентификатор последней записи, вставленной этой моделью.
  • setSource() public
    Устанавливает пользовательскую таблицу для вашего класса модели. Используется вашим контроллером для выбора таблицы базы данных.
  • unbindModel() public
    Отключить ассоциации на лету.
  • updateAll() public
    Обновляет несколько записей модели на основе набора условий.
  • updateCounterCache() public
    Обновляет кэш счетчика ассоциаций belongsTo после операции сохранения или удаления.
  • validateAssociated() public
    Валидирует одну запись, а также все ее связанные записи.
  • validateMany() public
    Валидирует несколько отдельных записей для одной модели.
  • validates() public

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

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

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

__call()source public

__call( string $method , array $params )

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

Параметры

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

Возвращает

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

__construct()source public

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

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

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

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

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

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

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

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

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

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

Параметры

boolean|integer|string|array $id optional false

Установите этот идентификатор для этой модели при запуске. Также может быть массивом опций, см. выше.

string $table optional null
Имя таблицы базы данных для использования.
string $ds optional null
Имя подключения к источнику данных.

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

Object::__construct()

__get()source public

__get( string $name )

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

Параметры

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

Возвращает

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

__isset()source public

__isset( string $name )

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

Параметры

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

Возвращает

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

_addToWhiteList()source protected

_addToWhiteList( string $key , array $options )

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

Параметры

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

Возвращает

array
Список опций
END_OF_DOCUMENT_MARKER

_clearCache()source protected

_clearCache( string $type null )

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

Параметры

строка $type необязательный null

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

Возвращает

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

_collectForeignKeys()source protected

_collectForeignKeys( string $type 'belongsTo' )

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

Параметры

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

Возвращает

массив

_constructLinkedModel()source 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');
                usage: $this->ModelName->modelMethods();

_createLinks()source protected

_createLinks( )

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

_deleteDependent()source protected

_deleteDependent( string $id , boolean $cascade )

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

Параметры

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

_deleteLinks()source protected

_deleteLinks( string $id )

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

Параметры

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

_doSave()source protected

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

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

Параметры

массив $data необязательный null
Данные для сохранения.
массив $options необязательный array()

может содержать следующие ключи:

  • validate: Установить в true/false для включения/выключения валидации.
  • fieldList: Массив полей, которые вы хотите разрешить для сохранения.
  • callbacks: Установить в false для отключения обратных вызовов. Использование 'before' или 'after' включит только эти обратные вызовы.
  • counterCache: Логическое значение для управления обновлением кэшей счётчиков (если таковые есть)

Возвращает

смешанный
При успехе Model::$data, если оно не пустое, или true, false при ошибке

Выбрасывает

PDOException

Ссылка

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

_filterResults()source protected

_filterResults( array $results , boolean $primary true )

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

Параметры

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

Возвращает

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

Триггеры

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

_findAll()source protected

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

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

Параметры

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

Возвращает

массив

См.

Model::find()

_findCount()source protected

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

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

Параметры

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

Возвращает

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

См.

Model::find()

_findFirst()source protected

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

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

Параметры

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

Возвращает

массив

См.

Model::find()

_findList()source protected

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

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

Параметры

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

Возвращает

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

См.

Model::find()

_findNeighbors()source protected

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

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

Параметры

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

Возвращает

массив

_findThreaded()source protected

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

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

Параметры

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

Возвращает

массив
Результаты потоковой обработки

_generateAssociation()source protected

_generateAssociation( string $type , string $assocKey )

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

Параметры

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

_isUUIDField()source protected

_isUUIDField( string $field )

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

Параметры

строка $field
Проверяемое поле

Возвращает

логическое значение

_normalizeXmlData()source protected

_normalizeXmlData( array $xml )

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

Параметры

массив $xml
XML в виде массива

Возвращает

массив

_prepareUpdateFields()source protected

_prepareUpdateFields( array $data )

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

Параметры

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

Возвращает

массив

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


_readDataSource()source protected

_readDataSource( string $type , array $query )

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

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

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

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

Параметры

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

Возвращает

массив

_saveMulti()source protected

_saveMulti( array $joined , integer|string $id , DataSource $db )

Сохраняет данные модели hasAndBelongsToMany в базе данных.

Параметры

массив $joined
Данные для сохранения
целое число/строка $id
ID записи в этой модели
DataSource $db
Экземпляр источника данных.

_setAliasData()source protected

_setAliasData( array $data )

Переместить значения в псевдоним

Параметры

массив $data
Данные.

Возвращает

массив

afterDelete()source public

afterDelete( )

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

Ссылка

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

afterFind()source public

afterFind( mixed $results , boolean $primary false )

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

Параметры

смешанный $results
Результаты операции поиска
булево $primary опционально false
Является ли эта модель запрашиваемой непосредственно (или запрошенной как ассоциация)

Возвращает

смешанный
Результат операции поиска

Ссылка

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

afterSave()source public

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

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

Параметры

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

Ссылка

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

См. также

Model::save()

afterValidate()source public

afterValidate( )

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

associations()source public

associations( )

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

Возвращает

массив

beforeDelete()source public

beforeDelete( boolean $cascade true )

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

Параметры

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

Возвращает

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

Ссылка

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

beforeFind()source public

beforeFind( array $query )

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

Параметры

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

Возвращает

смешанный

true, если операция должна продолжить, false, если она должна быть прервана; или изменённые $query для продолжения с новым $query


Ссылка

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

beforeSave()source public

beforeSave( array $options array() )

Вызывается перед каждой операцией сохранения, после проверки на валидность. Верните значение, отличное от true, чтобы остановить сохранение.

Параметры

массив $options опционально массив()
Опции, переданные из Model::save().

Возвращает

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

Ссылка

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

См. также

Model::save()

beforeValidate()source public

beforeValidate( array $options array() )

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

Параметры

массив $options опционально массив()
Опции, переданные из Model::save().

Возвращает

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

Ссылка

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

См. также

Model::save()

bindModel()source public

bindModel( array $params , boolean $reset true )

Связывать ассоциации модели динамически.

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

Пример: Добавление нового связывания hasOne в модель Profile, не определённого в исходном коде модели:

$this->User->bindModel(array('hasOne' => array('Profile')));

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

Параметры

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

Возвращает

булево
Успех

Ссылка

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

buildQuery()source public

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

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

Параметры

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

Возвращает

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

Вызывает

Model.beforeFind $this, array($query)

См. также

Model::find()

clear()source public

clear( )

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

Возвращает

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

См. также

Model::create()

create()source public

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

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

Параметры

boolean|массив $data необязательно array()

Необязательный массив данных для присваивания модели после её создания. Если null или false, значения по умолчанию схемы не объединяются.

boolean $filterKey необязательно false
Если true, переписывает любые входные данные первичного ключа пустым значением

Возвращает

массив
Текущие Model::data; после объединения $data и/или значений по умолчанию из базы данных

Ссылка

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

deconstruct()source public

deconstruct( string $field , array|object $data )

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

Параметры

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

Возвращает

смешанный тип
Полученные данные, которые должны быть присвоены полю

delete()source public

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

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

Параметры

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

Возвращает

boolean
True при успехе

Вызывает

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

Ссылка

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

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

escapeField()source public

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

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

Параметры

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

Возвращает

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

exists()source public

exists( integer|string $id null )

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

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

Параметры

целое число|строка $id необязательно null
ID записи для проверки существования

Возвращает

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

field()source public

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

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

Параметры

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

Возвращает

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

Ссылка

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

find()source 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' => 1,
  'group' => 'type',
  'callbacks' => false,
));

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

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

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

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

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

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

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

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

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

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

Параметры

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

Возвращает

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

Ссылка

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

getAffectedRows()source public

getAffectedRows( )

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

Возвращает

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

getAssociated()source public

getAssociated( string $type null )

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

Параметры

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

Возвращает

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

getColumnType()source public

getColumnType( string $column )

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

Параметры

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

Возвращает

string
Тип столбца

getColumnTypes()source public

getColumnTypes( )

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

Возвращает

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

getDataSource()source public

getDataSource( )

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

Возвращает

DataSource
Объект DataSource

getEventManager()source public

getEventManager( )

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

Возвращает

CakeEventManager

getID()source public

getID( integer $list 0 )

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

Параметры

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

Возвращает

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

getInsertID()source public

getInsertID( )

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

Возвращает

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

getLastInsertID()source public

getLastInsertID( )

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

Возвращает

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

getNumRows()source public

getNumRows( )

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

Возвращает

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

getVirtualField()source public

getVirtualField( string $field null )

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

Параметры

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

Возвращает

mixed

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


hasAny()source public

hasAny( array $conditions null )

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

Параметры

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

Возвращает

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

hasField()source public

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

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

Параметры

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

Возвращает

mixed

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


hasMethod()source public

hasMethod( string $method )

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

Параметры

string $method
Метод, который должен быть вызван.

Возвращает

boolean
True, если метод может быть вызван.

implementedEvents()source public

implementedEvents( )

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

Возвращает

array

Реализация

CakeEventListener::implementedEvents()

invalidFields()source public

invalidFields( array|string $options array() )

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

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

Параметры

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

Возвращает

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

См.

Model::validates()

invalidate()source public

invalidate( string $field , mixed $value true )

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

Параметры

string $field
Имя поля, которое нужно сделать недопустимым
mixed $value необязательно true

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

isForeignKey()source public

isForeignKey( string $field )

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

Параметры

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

Возвращает

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

isUnique()source public

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

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

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

Параметры

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

Возвращает

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

isVirtualField()source public

isVirtualField( string $field )

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

Параметры

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

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

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

joinModel()source public

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

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

Параметры

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

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

массив

onError()source public

onError( )

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

Ссылка

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

query()source public

query( string $sql )

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

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

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

Параметры

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

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

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

Ссылка

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

read()source public

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

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

Параметры

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

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

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

Ссылка

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

resetAssociations()source public

resetAssociations( )

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

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

boolean
Успех

save()source public

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

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

Параметры

массив $data необязательно null
Данные для сохранения.
булево значение|массив $validate необязательно true

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

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

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

смешанное
При успехе Model::$data, если оно не пустое, или true. В случае неудачи - false

Исключения

Исключение
PDOException

Триггеры

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

Ссылка

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

saveAll()source 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 выше.

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

смешанное

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

saveAssociated()source 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 выше.

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

смешанное

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


Исключения

PDOException

Ссылка

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

saveField()source public

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

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

Параметры

строка $name
Имя поля таблицы
смешанный тип $value
Значение поля
boolean|массив $validate необязательно false

Либо булево значение, либо массив. Если булево, указывает, нужно ли выполнять валидацию перед сохранением. Если массив, позволяет контролировать опции 'validate', 'callbacks' и 'counterCache'. Подробности см. в Model::save().

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

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

См. также

Model::save()

Ссылка

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

saveMany()source 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()
Опции для использования при сохранении данных записи. См. опции выше.

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

смешанный тип

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


Исключение

PDOException

Ссылка

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

schema()source public

schema( boolean|string $field false )

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

Параметры

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

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

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

set()source 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
Строковое значение для альтернативного метода ввода данных

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

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

Ссылка

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

setDataSource()source public

setDataSource( string $dataSource null )

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

Параметры

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

Исключение

MissingConnectionException

setInsertID()source public

setInsertID( integer|string $id )

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

Параметры

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

setSource()source public

setSource( string $tableName )

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

Параметры

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

Исключение

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

unbindModel()source public

unbindModel( array $params , boolean $reset true )

Временно отключает ассоциации.

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

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

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

Непривязанные модели, которые не сделаны постоянными, будут сброшены при следующем вызове 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

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

updateCounterCache()source public

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

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

Параметры

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

True, если была создана новая запись; иначе обновляются только ассоциации с определенным 'counterScope'.

END_OF_DOCUMENT_MARKER

validateAssociated()source 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 в зависимости от того, прошла ли проверку каждая запись.


validateMany()source 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 в зависимости от того, прошла ли проверку каждая запись.


validates()source public

validates( array $options array() )

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

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

Параметры

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

Возвращает

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

validator()source public

validator( ModelValidator $instance null )

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

Параметры

ModelValidator $instance необязательно null

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

Возвращает

ModelValidator

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

_mergeVars()source protected

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

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

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

Параметры

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

_set()source protected

_set( array $properties array() )

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

Параметры

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

_stop()source protected

_stop( integer|string $status 0 )

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

Параметры

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

dispatchMethod()source public

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

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

Параметры

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

Возвращает

mixed
Возвращает результат вызова метода

log()source 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
Успешность записи в журнал

requestAction()source public

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

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

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

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

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

Параметры

строка|массив $url

Строковый или основанный на массиве URL. В отличие от других массивов URL в CakePHP, этот URL не будет автоматически обрабатывать переданные и именованные аргументы в параметре $url.

массив $extra необязательно array()

Если массив содержит ключ "return", он устанавливает AutoRender в значение true. Также может быть использован для отправки данных GET/POST, а также именованных/переданных аргументов.

Возвращает

mixed

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


toString()source public

toString( )

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

Возвращает

строка
Название этого класса

Подробности свойств

$Behaviorssource

public BehaviorCollection

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

null

$__backAssociationsource

public массив

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

array()
END_OF_DOCUMENT_MARKER

$__backContainableAssociationsource

public array

Связь обратного включения

array()

$__backInnerAssociationsource

public array

Обратная внутренняя связь

array()

$__backOriginalAssociationsource

public array

Обратная исходная связь

array()

$__safeUpdateModesource

public boolean

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

false

$_associationKeyssource

protected array

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

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

$_associationssource

protected array

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

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

$_eventManagersource

protected CakeEventManager

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

null

$_insertIDsource

protected integer

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

null

$_schemasource

protected array

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

null

$_sourceConfiguredsource

protected boolean

Была ли настроена база данных.

См. также

Model::getDataSource
false

$_validatorsource

protected ModelValidator

Экземпляр ModelValidator

null

$actsAssource

public array

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

Например:

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

Ссылка

http://book.cakephp.org/2.0/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: имя класса модели, к которой связывается текущая модель. Если вы определяете отношение 'Профиль принадлежит Пользователю', ключ className должен равняться 'Пользователь'.
  • foreignKey: имя внешнего ключа, найденного в текущей модели. Это особенно полезно, если вам нужно определить несколько отношений belongsTo. Значение по умолчанию для этого ключа — подчеркнутое, единственное имя другой модели, завершенное символом '_id'.
  • foreignKey: фрагмент SQL, используемый для фильтрации записей связанной модели. Хорошей практикой является использование имён моделей в фрагментах SQL: 'Пользователь.активный = 1' всегда лучше, чем просто 'активный = 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

$cacheSourcessource

public boolean

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

true

$datasource

public array

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

Ссылка

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

$displayFieldsource

public string

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

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

Ссылка

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

$findMethodssource

public array

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

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

$findQueryTypesource

public string

Тип текущего выполняемого запроса find.

null
END_OF_DOCUMENT_MARKER

$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 (значение по умолчанию), CakePHP сначала удалит существующие записи отношений в таблице внешних ключей перед вставкой новых при обновлении записи. Таким образом, существующие ассоциации необходимо снова передать при обновлении. Чтобы предотвратить удаление существующих записей отношений, установите этот ключ в строку 'keepExisting'.
  • conditions: SQL-фрагмент, используемый для фильтрации записей связанной модели. Рекомендуется использовать имена моделей в SQL-фрагментах: "Комментарий.статус = 1" всегда лучше, чем просто "статус = 1".
  • fields: Список полей, которые будут извлечены, когда извлекаются данные связанной модели. По умолчанию возвращает все поля.
  • order: SQL-фрагмент, определяющий порядок сортировки возвращаемых связанных строк.
  • limit: Максимальное количество связанных строк, которые вы хотите получить.
  • offset: Количество связанных строк, которые нужно пропустить (учитывая текущие условия и порядок) перед извлечением и связыванием.
  • finderQuery: Полный SQL-запрос, который CakePHP может использовать для извлечения записей связанной модели. Это следует использовать в ситуациях, требующих очень кастомизированных результатов.

Ссылка

http://book.cakephp.org/2.0/en/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-фрагментах: "Комментарий.статус = 1" всегда лучше, чем просто "статус = 1".
  • fields: Список полей, которые будут извлекаться при извлечении данных связанной модели. По умолчанию возвращает все поля.
  • order: SQL-фрагмент, определяющий порядок сортировки возвращаемых связанных строк.
  • limit: Максимальное количество связанных строк, которые вы хотите получить.
  • offset: Количество связанных строк, которые нужно пропустить (учитывая текущие условия и порядок) перед извлечением и связыванием.
  • dependent: При установке dependent в true, возможно рекурсивное удаление моделей. В этом примере записи Comment будут удалены, когда запись связанного пользователя была удалена.
  • exclusive: При установке exclusive в true, рекурсивное удаление модели выполняет вызов deleteAll(), а не удаляет каждый элемент по отдельности. Это значительно улучшает производительность, но может не подойти для всех случаев.
  • finderQuery: Полный SQL-запрос, который CakePHP может использовать для извлечения записей связанной модели. Это следует использовать в ситуациях, требующих очень кастомизированных результатов.

Ссылка

http://book.cakephp.org/2.0/en/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-фрагментах: "Профиль.утверждён = 1" всегда лучше, чем просто "утверждён = 1".
  • fields: Список полей, которые будут извлекаться при извлечении данных связанной модели. По умолчанию возвращает все поля.
  • order: SQL-фрагмент, определяющий порядок сортировки возвращаемых связанных строк.
  • dependent: При установке dependent в true и вызове метода delete() модели с параметром cascade, связанные записи модели также будут удалены. В данном случае мы устанавливаем его в true, чтобы при удалении пользователя удалялся и её связанный профиль.

Ссылка

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

$idsource

public mixed

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

false

$namesource

public string

Имя модели.

Ссылка

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

$ordersource

public string

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

public $order = "Пост.дата_создания DESC"; public $order = array("Пост.количество_просмотров DESC", "Пост.рейтинг DESC");

Ссылка

http://book.cakephp.org/2.0/en/models/model-attributes.html#order
null

$pluginsource

public string

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

null

$primaryKeysource

public string

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

Ссылка

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

$recursivesource

public integer

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

Ссылка

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

$schemaNamesource

public string

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

null
END_OF_DOCUMENT_MARKER

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

$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.8/class-Model.html

Spec-Zone.ru

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