Spec-Zone.ru › CakePHP 2.9

Класс Model

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

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

CakeObject
Extended by Model реализует CakeEventListener

Прямые подклассы

  • AclNode

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

  • Aco
  • Aro
Пакет: Cake\Модель
Ссылка: http://book.cakephp.org/2.0/ru/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
    Вложенная ассоциация с возможностью содержать связанные объекты.
  • $__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
    Идентификатор записи модели, которая была последней вставленной.
  • $_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 полей SELECT.
  • $findMethods public
    array
    Список допустимых опций метода поиска, переданных в качестве первого параметра find().
  • $findQueryType public
    string
    Тип выполняемого запроса find.
  • $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, послеFind будет передавать последовательно отформатированные $results в случае, если $primary false. Формат будет следующим:

  • $useDbConfig public
    string
    Имя подключения к источнику данных базы данных, которое использует эта модель.
  • $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
    Пропускает результаты запроса через методы модели и поведения послеFind().
  • _findAll() protected
    Обрабатывает логику фильтрации перед/после для операций find('all'). Вызывается только методом Model::find().
  • _findCount() protected
    Обрабатывает логику фильтрации перед/после для операций find('count'). Вызывается только методом Model::find().
  • _findFirst() protected
    Обрабатывает логику фильтрации перед/после для операций find('first'). Вызывается только методом Model::find().
  • _findList() protected
    Обрабатывает логику фильтрации перед/после для операций 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

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

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

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

  • set() public
    Эта функция выполняет две задачи:
  • setDataSource() public
    Устанавливает источник данных, к которому привязана эта модель.
  • setInsertID() public
    Устанавливает ID последней записи, которую вставила эта модель.
  • 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: 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 необязательно false

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

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

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

CakeObject::__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. Будет использоваться для удаления кэша запросов.

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

mixed
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: Булево значение для управления обновлением кэша счетчиков (если таковые имеются)

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

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

Выбрасывает

PDOException

Ссылка

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

_filterResults()source protected

_filterResults( array $results , boolean $primary true )

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

Параметры

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

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

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

Вызывает

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

Возвращает

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

Ссылка

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

beforeFind()source public

beforeFind( array $query )

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

Параметры

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

Возвращает

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

Ссылка

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

См. также

Model::save()

beforeValidate()source public

beforeValidate( array $options array() )

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

Параметры

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

Возвращает

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

Ссылка

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

См. также

Model::find()

clear()source public

clear( )

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

Возвращает

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 )

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

Параметры

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

Возвращает

boolean
True при успехе

Триггеры

Model.beforeDelete $this, массив($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
Псевдоним для модели (например: Пост)

Возвращает

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

exists()source public

exists( integer|string $id null )

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

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

Параметры

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

Возвращает

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

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

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

Например:

$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
Имя поля для поиска

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

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

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

Если параметр кэширования запросов не указан в качестве 2-го или 3-го аргумента, используется значение по умолчанию модели $cacheQueries.

Параметры

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

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

булево значение
Успех

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, массив($options)
Model.afterSave $this, массив($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
END_OF_DOCUMENT_MARKER ```

saveField()source public

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

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

Параметры

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

Либо boolean, либо массив. Если boolean, указывает, нужно ли выполнять валидацию перед сохранением. Если массив, позволяет управлять параметрами '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()
Параметры для использования при сохранении данных записи. См. $options выше.

Возвращает

смешанный

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

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

$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

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

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

Вызывает метод этого объекта с заданными параметрами. Предоставляет ОО-обертку для 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

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


toString()source public

toString( )

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

Возвращает

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

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

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

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

Ссылка

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

$hasManysource

public array

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

Основные примеры

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

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

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

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

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

$namesource

public string

Имя модели.

Ссылка

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

$ordersource

public string

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

public $order = "Post.created DESC"; public $order = array("Post.view_count DESC", "Post.rating DESC");

Ссылка

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

$pluginsource

public string

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

null

$primaryKeysource

public string

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

Ссылка

http://book.cakephp.org/2.0/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
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, послеFind получит согласованно отформатированные $results в случае, если $primary равно false. Формат будет таким:

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

$useDbConfigsource

public string

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

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

Ссылка

http://book.cakephp.org/2.0/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.
https://api.cakephp.org/2.9/class-Model.html

Spec-Zone.ru

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