Spec-Zone.ru › CakePHP 2.7

Класс Aro

Объект запроса доступа

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

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

__constructисходный код public

__construct( )

Конструктор

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

Model::__construct()

nodeисходный код public

node( string|array|Model $ref null )

Возвращает узел Aro/Aco для этой модели

Параметры

строка|массив|Model $ref необязательно null
Массив с 'model' и 'foreign_key', объект модели или строковое значение

Возвращает

array
Узел, найденный в базе данных

Выбрасывает

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

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

__callисходный код public

__call( string $method , array $params )

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

Параметры

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

Возвращает

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

__getисходный код public

__get( string $name )

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

Параметры

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

Возвращает

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

__issetисходный код public

__isset( string $name )

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

Параметры

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

Возвращает

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

_addToWhiteListисходный код protected

_addToWhiteList( string $key , array $options )

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

Параметры

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

Возвращает

array
параметры

_clearCacheисходный код protected

_clearCache( string $type null )

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

Параметры

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

Возвращает

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

_collectForeignKeysисходный код protected

_collectForeignKeys( string $type 'belongsTo' )

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

Параметры

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

Возвращает

array
массив

_constructLinkedModelисходный код protected

_constructLinkedModel( string $assoc , string $className null , string $plugin null )

Защищённый вспомогательный метод для создания связанных моделей заданного класса.

Параметры

строка $assoc
Имя ассоциации
строка $className необязательно null
Имя класса
строка $plugin необязательно null
имя плагина, где находится $className примеры: public $hasMany = array('Assoc' => array('className' => 'ModelName')); использование: $this->Assoc->modelMethods(); public $hasMany = array('ModelName'); использование: $this->ModelName->modelMethods();

_createLinksисходный код protected

_createLinks( )

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

_deleteDependentисходный код protected

_deleteDependent( string $id , boolean $cascade )

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

Параметры

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

_deleteLinksисходный код protected

_deleteLinks( string $id )

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

Параметры

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

_doSaveисходный код protected

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

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

Параметры

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

Возвращает

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

Выбрасывает

PDOException
PDOException

Ссылка

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

_filterResultsисходный код protected

_filterResults( array $results , boolean $primary true )

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

Параметры

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

Возвращает

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

Вызывает

Model.afterFind $this, array($results, $primary)

_findAllисходный код protected

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

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

Параметры

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

Возвращает

array
массив

См.

Model::find()
END_OF_DOCUMENT_MARKER

_findCountsource protected

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

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

Параметры

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

Возвращает

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

См. также

Model::find()

_findFirstsource protected

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

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

Параметры

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

Возвращает

array
массив

См. также

Model::find()

_findListsource protected

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

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

Параметры

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

Возвращает

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

См. также

Model::find()

_findNeighborssource protected

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

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

Параметры

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

Возвращает

array
массив

_findThreadedsource protected

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

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

Параметры

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

Возвращает

array
Потоковые результаты

_generateAssociationsource protected

_generateAssociation( string $type , string $assocKey )

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

Параметры

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

_isUUIDFieldsource protected

_isUUIDField( string $field )

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

Параметры

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

Возвращает

boolean
bool

_normalizeXmlDatasource protected

_normalizeXmlData( array $xml )

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

Параметры

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

Возвращает

array
массив

_prepareUpdateFieldssource protected

_prepareUpdateFields( array $data )

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

Параметры

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

Возвращает

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

_readDataSourcesource protected

_readDataSource( string $type , array $query )

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

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

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

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

Параметры

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

Возвращает

array
массив

_saveMultisource protected

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

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

Параметры

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

_setAliasDatasource protected

_setAliasData( array $data )

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

Параметры

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

Возвращает

array
массив

afterDeletesource public

afterDelete( )

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

Ссылка

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

afterFindsource public

afterFind( mixed $results , boolean $primary false )

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

Параметры

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

Возвращает

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

Ссылка

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

afterSavesource public

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

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

Параметры

логическое $created
True, если это сохранение создало новую запись
массив $options необязательно array()
Параметры, переданные из Model::save().

См. также

Model::save()

Ссылка

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

afterValidatesource public

afterValidate( )

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

associationssource public

associations( )

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

Возвращает

array
массив

beforeDeletesource public

beforeDelete( boolean $cascade true )

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

Параметры

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

Возвращает

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

Ссылка

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

beforeFindsource public

beforeFind( array $query )

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

Параметры

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

Возвращает

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

Ссылка

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

beforeSavesource public

beforeSave( array $options array() )

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

Параметры

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

Возвращает

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

См.

Model::save()

Ссылка

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

beforeValidatesource public

beforeValidate( array $options array() )

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

Параметры

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

Возвращает

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

См.

Model::save()

Ссылка

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

bindModelsource public

bindModel( array $params , boolean $reset true )

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

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

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

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

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

Параметры

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

buildQuerysource 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::find()

Триггеры

Model.beforeFind $this, array($query)

clearsource public

clear( )

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

Возвращает

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

См.

Model::create()

createsource public

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

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

Параметры

boolean|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

deconstructsource public

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

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

Параметры

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

Возвращает

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

deletesource public

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

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

Параметры

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

Возвращает

boolean
True при успехе

Ссылка

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

Триггеры

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

deleteAllsource public

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

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

Параметры

mixed $conditions
Условия для сопоставления
boolean $cascade необязательно true
Установите в true, чтобы удалить записи, зависящие от этой записи
boolean $callbacks необязательно false
Выполнять колбеки

Возвращает

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

Ссылка

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

escapeFieldsource public

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

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

Параметры

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

Возвращает

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

existssource public

exists( integer|string $id null )

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

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

Параметры

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

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

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

fieldsource 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

findsource 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' => 2,
  'group' => 'type',
  'callbacks' => false,
));

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

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

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

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

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

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

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

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

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

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

Параметры

string $type необязательно 'first'
Тип операции поиска (все / первый / подсчет / соседи / список / нити)
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

getAffectedRowssource public

getAffectedRows( )

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

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

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

getAssociatedsource public

getAssociated( string $type null )

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

Параметры

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

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

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

getColumnTypesource public

getColumnType( string $column )

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

Параметры

string $column
Название столбца модели

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

string
Тип столбца

getColumnTypessource public

getColumnTypes( )

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

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

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

getDataSourcesource public

getDataSource( )

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

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

DataSource
Объект DataSource

getEventManagersource public

getEventManager( )

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

Возвращает

CakeEventManager
CakeEventManager

getIDsource public

getID( integer $list 0 )

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

Параметры

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

Возвращает

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

getInsertIDsource public

getInsertID( )

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

Возвращает

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

getLastInsertIDsource public

getLastInsertID( )

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

Возвращает

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

getNumRowssource public

getNumRows( )

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

Возвращает

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

getVirtualFieldsource public

getVirtualField( string $field null )

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

Параметры

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

Возвращает

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

hasAnysource public

hasAny( array $conditions null )

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

Параметры

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

Возвращает

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

hasFieldsource public

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

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

Параметры

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

Возвращает

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

hasMethodsource public

hasMethod( string $method )

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

Параметры

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

Возвращает

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

implementedEventssource public

implementedEvents( )

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

Возвращает

array
массив

Реализация

CakeEventListener::implementedEvents()

invalidFieldssource public

invalidFields( array|string $options array() )

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

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

Параметры

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

Возвращает

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

См.

Model::validates()

invalidatesource public

invalidate( string $field , mixed $value true )

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

Параметры

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

isForeignKeysource public

isForeignKey( string $field )

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

Параметры

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

Возвращает

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

isUniquesource public

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

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

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

Параметры

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

Возвращает

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

isVirtualFieldsource public

isVirtualField( string $field )

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

Параметры

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

Возвращает

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

joinModelsource public

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

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

Параметры

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

Возвращает

array
массив

onErrorsource public

onError( )

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

Ссылка

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

querysource public

query( string $sql )

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

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

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

Параметры

string $sql
SQL-запрос

Возвращает

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

Ссылка

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

readsource public

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

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

Параметры

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

Возвращает

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

Ссылка

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

resetAssociationssource public

resetAssociations( )

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

Возвращает

boolean
Успех
END_OF_DOCUMENT_MARKER

savesource public

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

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

Параметры

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

Возвращает

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

Выбрасывает

Exception
Исключение
PDOException
PDOException

Ссылка

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

Триггеры

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

saveAllsource public

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

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

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

Параметры

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

Параметры

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

Возвращает

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

Ссылка

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

saveAssociatedsource public

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

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

Параметры

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

Параметры

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

Возвращает

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

Выбрасывает

PDOException
PDOException

Ссылка

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

saveFieldsource public

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

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

Параметры

строка $name
Имя поля таблицы
смешанное значение $value
Значение поля
булево значение или массив $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

saveManysource public

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

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

Параметры

  • validate: Установите в false для отключения валидации, true для валидации каждой записи перед сохранением, 'first' для валидации всех записей перед сохранением любой (по умолчанию),
  • atomic: Если true (по умолчанию), попытается сохранить все записи в одной транзакции. Должно быть установлено в false, если база данных/таблица не поддерживает транзакции.
  • fieldList: Эквивалентно параметру $fieldList в Model::save()
  • deep: Если установлено в true, все связанные данные также будут сохранены.
  • callbacks: Смотрите Model::save()
  • counterCache: Смотрите Model::save()

Параметры

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

Возвращает

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

Выбрасывает

PDOException
PDOException

Ссылка

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

schemasource public

schema( boolean|string $field false )

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

Параметры

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

Возвращает

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

setsource public

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

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

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

Параметры

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

Возвращает

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

Ссылка

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

setDataSourcesource public

setDataSource( string $dataSource null )

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

Параметры

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

Выбрасывает

MissingConnectionException
MissingConnectionException

setInsertIDsource public

setInsertID( integer|string $id )

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

Параметры

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

setSourcesource public

setSource( string $tableName )

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

Параметры

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

Выбрасывает

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

unbindModelsource 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, чтобы сделать отключение постоянным

Возвращает

boolean
Успешно

Ссылка

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

updateAllsource public

updateAll( array $fields , mixed $conditions true )

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

Параметры

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

Возвращает

boolean
Истина при успехе, ложь при неудаче

Ссылка

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

updateCounterCachesource public

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

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

Параметры

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

validateAssociatedsource public

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

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

Параметры

  • atomic: Если истина (по умолчанию), возвращает булево значение. Если ложь, возвращает массив.
  • fieldList: Эквивалентно параметру $fieldList в Model::save()
  • deep: Если установлено в значение true, валидируются не только непосредственно связанные данные, но и вложенные данные ассоциаций.

Предупреждение: Этот метод может потенциально изменить переданный аргумент $data, Если вы этого не хотите, сделайте копию $data перед передачей его в этот метод

Параметры

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

Возвращает

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

validateManysource public

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

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

Параметры

  • atomic: Если истина (по умолчанию), возвращает булево значение. Если ложь, возвращает массив.
  • fieldList: Эквивалентно параметру $fieldList в Model::save()
  • deep: Если установлено в значение true, все связанные данные также будут проверены.

Предупреждение: Этот метод может потенциально изменить переданный аргумент $data, Если вы этого не хотите, сделайте копию $data перед передачей его в этот метод

Параметры

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

Возвращает

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

validatessource public

validates( array $options array() )

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

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

Параметры

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

Возвращает

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

validatorsource public

validator( ModelValidator $instance null )

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

Параметры

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

Возвращает

ModelValidator
ModelValidator

Методы, унаследованные от Объекта

_mergeVarssource protected

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

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

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

Параметры

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

_setsource protected

_set( array $properties array() )

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

Параметры

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

_stopsource protected

_stop( integer|string $status 0 )

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

Параметры

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

dispatchMethodsource public

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

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

Параметры

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

Возвращает

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

logsource public

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

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

Параметры

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

Возвращает

boolean
Результат записи в журнал

requestActionsource public

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

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

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

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

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

Параметры

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

Возвращает

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

toStringsource public

toString( )

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

Возвращает

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

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

$hasAndBelongsToManysource

public массив

AROs связаны с ACOs посредством разрешений

array('Aco' => array('with' => 'Permission'))

$namesource

public строка

Имя модели

'Aro'

Наследуемые свойства от AclNode

$actsAssource

public массив

Модели ACL используют поведение Tree

array('Tree' => array('type' => 'nested'))

$cacheQueriessource

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

Явно отключить кеширование запросов в памяти для моделей ACL

false

Наследуемые свойства от Model

$Behaviorssource

public BehaviorCollection

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

null

$__backAssociationsource

public array

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

array()

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

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

null

$_schemasource

protected array

Метаданные таблицы полей.

null

$_sourceConfiguredsource

protected boolean

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

See

Model::getDataSource()
false

$_validatorsource

protected ModelValidator

Экземпляр ModelValidator

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

Ссылка

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

$cacheSourcessource

public boolean

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

true

$datasource

public array

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

Ссылка

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

$displayFieldsource

public string

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

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

Ссылка

http://book.cakephp.org/2.0/en/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

$hasManysource

public array

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

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

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

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

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

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

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

Ссылка

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

$hasOnesource

public array

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

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

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

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

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

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

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

Ссылка

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

$idsource

public mixed

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

false

$ordersource

public string

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

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

Ссылка

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

$pluginsource

public string

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

null

$primaryKeysource

public string

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

Ссылка

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

$recursivesource

public integer

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

Ссылка

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

$schemaNamesource

public string

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

null

$tablesource

public string

Имя таблицы для этой модели.

false

$tablePrefixsource

public string

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

Ссылка

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

$tableToModelsource

public array

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

array()

$useConsistentAfterFindsource

public boolean

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

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

$useDbConfigsource

public string

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

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

Ссылка

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

$useTablesource

public string

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

Ссылка

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

$validatesource

public массив

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

Проверка с использованием регулярных выражений

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: Булевое значение, указывающее, должно ли поле быть присутствовать при сохранении
  • on: Булевое значение, указывающее, может ли поле быть пустым
  • on: Возможные значения: update, create. Указывают применять это правило только при обновлении или создании

Ссылка

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

$validationDomainsource

public строка

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

null

$validationErrorssource

public массив

Список ошибок валидации.

array()

$virtualFieldssource

public массив

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

public $virtualFields = array('two' => '1 + 1');

Это упрощённый пример того, как установить virtualFields

Ссылка

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

$whitelistsource

public массив

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

array()

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

Spec-Zone.ru

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