Spec-Zone.ru › CakePHP 2.8

Класс AppModel

Модель приложения для Cake.

Добавьте свои методы для всего приложения в класс ниже, ваши модели будут их наследоваться.

Объект
Extended by Модель реализует CakeEventListener
Extended by AppModel

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

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

Унаследованные свойства

  • Behaviors, __backAssociation, __backContainableAssociation, __backInnerAssociation, __backOriginalAssociation, __safeUpdateMode, _associationKeys, _associations, _eventManager, _insertID, _schema, _sourceConfigured, _validator, actsAs, alias, belongsTo, cacheQueries, cacheSources, data, displayField, findMethods, findQueryType, hasAndBelongsToMany, hasMany, hasOne, id, name, order, plugin, primaryKey, recursive, schemaName, table, tablePrefix, tableToModel, useConsistentAfterFind, useDbConfig, useTable, validate, validationDomain, validationErrors, virtualFields, whitelist

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

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

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

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

Object::__construct()

__get()source public

__get( string $name )

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

Параметры

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

Возвращает

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

__isset()source public

__isset( string $name )

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

Параметры

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

Возвращает

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

_addToWhiteList()source защищённый

_addToWhiteList( string $key , array $options )

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

Параметры

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

Возвращает

массив
Список параметров

_clearCache()source защищённый

_clearCache( string $type null )

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

Параметры

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

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

Возвращает

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

_collectForeignKeys()source защищённый

_collectForeignKeys( string $type 'belongsTo' )

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

Параметры

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

Возвращает

массив

_constructLinkedModel()source защищённый

_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 защищённый

_createLinks( )

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

_deleteDependent()source защищённый

_deleteDependent( string $id , boolean $cascade )

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

Параметры

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

_deleteLinks()source защищённый

_deleteLinks( string $id )

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

Параметры

строка $id
ID удалённой записи
END_OF_DOCUMENT_MARKER

_doSave()source protected

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

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

Параметры

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

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

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

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

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

Исключения

PDOException

Ссылка

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

_filterResults()source protected

_filterResults( array $results , boolean $primary true )

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

Параметры

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

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

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

Триггеры

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

_findAll()source protected

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

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

Параметры

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

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

массив

См. также

Model::find()

_findCount()source protected

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

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

Параметры

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

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

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

См. также

Model::find()

_findFirst()source protected

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

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

Параметры

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

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

массив

См. также

Model::find()

_findList()source protected

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

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

Параметры

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

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

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

См. также

Model::find()

_findNeighbors()source protected

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

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

Параметры

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

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

массив

_findThreaded()source protected

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

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

Параметры

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

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

массив
Результаты с нисходящей иерархией

_generateAssociation()source protected

_generateAssociation( string $type , string $assocKey )

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

Параметры

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

_isUUIDField()source protected

_isUUIDField( string $field )

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

Параметры

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

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

логическое

_normalizeXmlData()source protected

_normalizeXmlData( array $xml )

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

Параметры

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

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

массив

_prepareUpdateFields()source protected

_prepareUpdateFields( array $data )

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

Параметры

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

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

массив

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


_readDataSource()source protected

_readDataSource( string $type , array $query )

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

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

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

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

Параметры

строка $type
Тип операции поиска (all / first / count / neighbors / list / threaded)
массив $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
END_OF_DOCUMENT_MARKER

afterFind()source public

afterFind( mixed $results , boolean $primary false )

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

Параметры

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

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

mixed
Результат операции поиска

Ссылка

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

afterSave()source public

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

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

Параметры

boolean $created
Истина, если это сохранение создало новую запись
array $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( )

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

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

array

beforeDelete()source public

beforeDelete( boolean $cascade true )

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

Параметры

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

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

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

Ссылка

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

beforeFind()source public

beforeFind( array $query )

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

Параметры

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

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

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

Ссылка

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

beforeSave()source public

beforeSave( array $options array() )

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

Параметры

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

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

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

Ссылка

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

См. также

Model::save()

beforeValidate()source public

beforeValidate( array $options array() )

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

Параметры

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

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

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

Ссылка

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

См. также

Model::save()

bindModel()source public

bindModel( array $params , boolean $reset true )

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

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

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

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

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

Параметры

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

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

boolean
Успех

Ссылка

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

buildQuery()source public

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

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

Параметры

string $type необязательно 'first'
Тип операции поиска (all / first / count / neighbors / list / threaded)
array $query необязательно array()
Поля параметров (conditions / fields / joins / limit / offset / order / page / group / callbacks)

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

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|array $data необязательно array()

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

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

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

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

Ссылка

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

deconstruct()source public

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

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

Параметры

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

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

mixed
Полученные данные, которые следует назначить полю
END_OF_DOCUMENT_MARKER

delete()source public

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

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

Параметры

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

Возвращает

boolean
True при успехе

Триггеры

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

Ссылка

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

deleteAll()source public

deleteAll( mixed $conditions , boolean $cascade true , boolean $callbacks false )

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

Параметры

mixed $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 )

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

Параметры

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

Возвращает

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

exists()source public

exists( integer|string $id null )

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

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

Параметры

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

Возвращает

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

field()source public

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

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

Параметры

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

Возвращает

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

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

Используется для выполнения операций поиска, где первый аргумент — тип операции поиска (all / first / count / neighbors / list / threaded), второй параметр — опции поиска (индексированный массив, включая: '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,
));

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

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

Отключение колбэков

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

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

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

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

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

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

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

Параметры

string $type необязательный 'first'
Тип операции поиска (all / first / count / neighbors / list / threaded)
array $query необязательный array()
Поля опций (conditions / fields / joins / limit / offset / order / page / group / callbacks)

Возвращает

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

Ссылка

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

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, если таких полей нет. $field.


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

isVirtualField()source public

isVirtualField( string $field )

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

Параметры

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

Возвращает

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

joinModel()source public

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

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

Параметры

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

Возвращает

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

Параметры

string $sql
SQL-запрос

Возвращает

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

Ссылка

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

read()source public

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

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

Параметры

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

Возвращает

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

Ссылка

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

resetAssociations()source public

resetAssociations( )

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

Возвращает

boolean
Успех

save()source public

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

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

Параметры

array $data необязательный null
Данные для сохранения.
boolean|array $validate необязательный true

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

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

Возвращает

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

Исключения

Exception
PDOException

Триггеры

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

Ссылка

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

saveAll()source public

saveAll( array $data array() , array $options array() )

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

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

Опции

  • validate: Установите значение false для отключения валидации, true для валидации каждой записи перед сохранением, 'first' для валидации *всех* записей перед сохранением любой (по умолчанию) или 'only' для валидации записей, но не для их сохранения.
  • atomic: Если true (по умолчанию), попытается сохранить все записи в одной транзакции. Должно быть установлено в false, если база данных/таблица не поддерживает транзакции.
  • fieldList: Эквивалентно параметру $fieldList в Model::save(). Он должен быть ассоциативным массивом с именем модели в качестве ключа и массивом полей в качестве значения. Пример: array( 'SomeModel' => array('field'), 'AssociatedModel' => array('field', 'otherfield') )
  • deep: См. saveMany/saveAssociated
  • callbacks: См. Model::save()
  • counterCache: См. Model::save()

Параметры

array $data необязательный array()

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

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

Возвращает

mixed

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


Ссылка

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

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

Параметры

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

Возвращает

mixed

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


Исключения

PDOException

Ссылка

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

saveField()source public

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

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

Параметры

string $name
Имя поля таблицы
mixed $value
Значение поля
boolean|array $validate необязательный false

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

Возвращает

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

См. также

Model::save()

Ссылка

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

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

Параметры

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

Возвращает

mixed

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

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

Параметры

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

Возвращает

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

set()source public

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

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

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

Параметры

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

Возвращает

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

Ссылка

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

setDataSource()source public

setDataSource( string $dataSource null )

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

Параметры

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

Выбрасывает

MissingConnectionException

setInsertID()source public

setInsertID( integer|string $id )

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

Параметры

integer|string $id
ID последней вставленной записи

setSource()source public

setSource( string $tableName )

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

Параметры

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

Выбрасывает

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

unbindModel()source public

unbindModel( array $params , boolean $reset true )

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

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

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

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

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

Параметры

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

Возвращает

boolean
Успех

Ссылка

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

updateAll()source public

updateAll( array $fields , mixed $conditions true )

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

Параметры

array $fields

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

mixed $conditions необязательно true
Условие соответствия, true для всех записей

Возвращает

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

Ссылка

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

updateCounterCache()source public

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

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

Параметры

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

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

validateAssociated()source public

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

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

Параметры

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

Возвращает

array|boolean

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


validateMany()source public

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

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

Параметры

array $data
$data Данные записей для проверки. Должен быть массивом с числовой индексацией
array $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() для установки активных данных.

Параметры

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

Возвращает

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

validator()source public

validator( ModelValidator $instance null )

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

Параметры

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

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

Возвращает

ModelValidator

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

_mergeVars()source protected

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

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

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

Параметры

массив $properties
Имя свойств для объединения.
строка $class
Класс для объединения свойств с.
логическое значение $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

Возвращает

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

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

Возвращает

логическое значение
Успешность записи в лог

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 и именованных/переданных аргументов.

Возвращает

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

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


toString()source public

toString( )

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

Возвращает

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

© 2005–2016 The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
http://api.cakephp.org/2.8/class-AppModel.html

Spec-Zone.ru

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