Spec-Zone.ru › CakePHP 2.10

Класс Model

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

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

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

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

  • AclNode
  • CakeTestModel

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

  • Aco
  • Aro
Пакет: Cake\Model
Ссылка: https://book.cakephp.org/2.0/en/models.html
Авторские права: Copyright (c) Cake Software Foundation, Inc. (https://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 выпадающих списков.
  • $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
    Имя подключения к источнику данных базы данных, которое использует эта модель.
  • $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 => ключи(тип, null, значение по умолчанию, ключ, длина, дополнительно)

  • 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 для моделей базы данных и пользовательские вызовы RPC для удаленных источников данных.

Параметры

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

Возвращает

смешанный тип
То, что возвращает вызываемый метод

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

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

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

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

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

Параметры

логическое значение, целое число, строка или массив $id необязательно false

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

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

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

CakeObject::__construct()

__get()source public

__get( string $name )

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

Параметры

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

Возвращает

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

__isset()source public

__isset( string $name )

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

Параметры

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

Возвращает

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

_addToWhiteList()source protected

_addToWhiteList( string $key , array $options )

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

Параметры

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

Возвращает

массив
параметры
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

Ссылка

https://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() )

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

Параметры

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

Возвращает

массив

См. также

Model::find()

_findCount()source protected

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

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

Параметры

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

Возвращает

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

См. также

Model::find()

_findFirst()source protected

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

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

Параметры

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

Возвращает

массив

См. также

Model::find()

_findList()source protected

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

Обрабатывает логику фильтрации before/after для операций 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( )

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

Ссылка

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

afterFind()source public

afterFind( mixed $results , boolean $primary false )

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

Параметры

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

Возвращает

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

Ссылка

https://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().

Ссылка

https://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, если её следует прервать

Ссылка

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

beforeFind()source public

beforeFind( array $query )

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

Параметры

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

Возвращает

смешанное

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


Ссылка

https://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, если её следует прервать

Ссылка

https://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 для прерывания

Ссылка

https://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, чтобы сделать привязку постоянной

Возвращает

логическое значение
Успех

Ссылка

https://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 и/или значений по умолчанию из базы данных

Ссылка

https://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

Ссылка

https://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 при ошибке

Ссылка

https://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 существует.

Если $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, если не найдено.

Ссылка

https://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(). См. документацию по пользовательским типам поиска (https://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 при ошибке.

Ссылка

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

getAffectedRows()source public

getAffectedRows( )

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

Возвращает

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

getAssociated()source public

getAssociated( string $type null )

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

Параметры

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

Возвращает

mixed

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


hasAny()source public

hasAny( array $conditions null )

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

Параметры

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

Возвращает

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

hasField()source public

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

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

Параметры

string|array $name
Имя поля для поиска или массив имен
boolean $checkVirtual optional 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 optional array()
Необязательный массив пользовательских параметров, которые должны быть доступны в обратном вызове beforeValidate

Возвращает

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

См.

Model::validates()

invalidate()source public

invalidate( string $field , mixed $value true )

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

Параметры

string $field
Имя поля, которое нужно сделать недопустимым
mixed $value optional 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 optional 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 необязательно массив()
Любые ключи соединения, которые должны быть объединены с запрошенными ключами

Возвращает

массив

onError()source public

onError( )

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

Ссылка

https://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-запрос

Возвращает

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

Ссылка

https://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, если не найдено

Ссылка

https://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 необязательно массив()
Список полей, которые разрешено сохранить

Возвращает

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

Исключения

Исключение
PDOException

Триггеры

Model.beforeSave $this, массив($options)
Model.afterSave $this, массив($created, $options)

Ссылка

https://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()

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

Параметры

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

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

массив $options необязательно массив()
Параметры для использования при сохранении данных записи, см. $options выше.

Возвращает

смешанное

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


Ссылка

https://book.cakephp.org/2.0/ru/models/saving-your-data.html#model-saveassociated-array-data-null-array-options-array
https://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() )

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

Параметры

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

Возвращает

смешанное

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


Исключения

PDOException

Ссылка

https://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
Значение поля
логическое значение|массив $validate необязательно false

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

Возвращает

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

См. также

Model::save()

Ссылка

https://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

Ссылка

https://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)

Параметры

логическое значение|строка $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.

Ссылка

https://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
Набор связей для отключения (индексированные типом связи)
логическое значение $reset необязательно true
Установите в значение false, чтобы сделать отключение постоянным

Возвращает

логическое значение
Успех

Ссылка

https://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 для всех записей

Возвращает

логическое значение
True при успехе, false при ошибке

Ссылка

https://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
логическое значение $created необязательно false

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

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

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

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

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

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

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

$Behaviorssource

public BehaviorCollection

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

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')
);

Ссылка

https://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'.
  • conditions: фрагмент SQL, используемый для фильтрации записей связанной модели. Рекомендуется использовать имена моделей в фрагментах SQL: 'Пользователь.активный = 1' всегда лучше, чем просто 'активный = 1'.
  • type: тип соединения для использования в запросе SQL, по умолчанию LEFT, но возможно, не подходит для всех ситуаций; INNER может быть полезен, когда вы хотите получить все из ваших основных и связанных моделей или ничего (эффективно, когда используется с некоторыми условиями, конечно).
  • fields: список полей, которые необходимо получить при извлечении данных связанной модели. По умолчанию возвращает все поля.
  • order: фрагмент SQL, определяющий порядок сортировки возвращенных связанных строк.
  • counterCache: Если установлено в true, связанная модель автоматически увеличивает или уменьшает поле "[имя_модели_в_единственном_числе]_count" в внешней таблице всякий раз, когда вы выполняете save() или delete(). Если это строка, то это имя поля, которое следует использовать. Значение в поле счётчика представляет количество связанных строк.
  • counterScope: необязательный массив условий для обновления счётчика.

Ссылка

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

$cacheQueriessource

public boolean

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

Ссылка

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

$cacheSourcessource

public boolean

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

true

$datasource

public array

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

Ссылка

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

$displayFieldsource

public string

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

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

Ссылка

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

$findMethodssource

public array

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

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

$findQueryTypesource

public string

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

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 может использовать для извлечения записей связанной модели. Это следует использовать в ситуациях, требующих очень настраиваемых результатов.

Ссылка

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

$hasManysource

public array

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

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

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

Подробная конфигурация

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

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

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

Ссылка

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

$hasOnesource

public array

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

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

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

Подробная конфигурация

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

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

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

Ссылка

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

$idsource

public mixed

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

false

$namesource

public string

Имя модели.

Ссылка

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

$ordersource

public string

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

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

Ссылка

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

$pluginsource

public string

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

null

$primaryKeysource

public string

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

Ссылка

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

$recursivesource

public integer

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

Ссылка

https://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

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

Ссылка

https://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().

Ссылка

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

$useTablesource

public string

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

Ссылка

https://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. Указывают на применение правила только при обновлении или создании

Ссылка

https://book.cakephp.org/2.0/ru/models/model-attributes.html#validate
https://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

Ссылка

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

$whitelistsource

public array

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

array()

© 2005–2017 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.10/class-Model.html

Spec-Zone.ru

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