Класс I18nModel
Модель, используемая TranslateBehavior для доступа к таблицам перевода.
- Объект
-
Модель реализует CakeEventListener -
AppModel -
I18nModel
Авторское право: Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
Лицензия: MIT License
Расположение: Cake/Model/I18nModel.php
Краткое описание свойств
-
$displayFieldpublicПоле отображенияstring -
$namepublicИмя моделиstring -
$useTablepublicИмя таблицыstring
Унаследованные свойства
-
Behaviors,__backAssociation,__backContainableAssociation,__backInnerAssociation,__backOriginalAssociation,__safeUpdateMode,_associationKeys,_associations,_eventManager,_insertID,_schema,_sourceConfigured,_validator,actsAs,alias,belongsTo,cacheQueries,cacheSources,data,findMethods,findQueryType,hasAndBelongsToMany,hasMany,hasOne,id,order,plugin,primaryKey,recursive,schemaName,table,tablePrefix,tableToModel,useConsistentAfterFind,useDbConfig,validate,validationDomain,validationErrors,virtualFields,whitelist
Унаследованные методы из Модель
__call()исходный код public
__call( string $method , array $params )
Обрабатывает вызовы пользовательских методов, например, findBy
Параметры
- строка
$method - Имя метода для вызова.
- массив
$params - Параметры для метода.
Возвращает
mixedТо, что возвращает вызываемый метод
__construct()исходный код public
__construct( boolean|integer|string|array $id false , string $table null , string $ds null )
Конструктор. Связывает таблицу базы данных модели с объектом.
Если $id является массивом, он может использоваться для передачи нескольких параметров в модель.
-
id: Идентификатор для начала работы с моделью. -
table: Таблица для использования с этой моделью. -
ds: Имя подключения, к которому подключена эта модель. -
name: Имя модели (например, Запись). -
alias: Псевдоним модели, используемый для регистрации экземпляра вClassRegistry. (например,ParentThread)
Переопределение метода Model::__construct
При переопределении Model::__construct() обратите внимание на то, что необходимо включить и передать все 3 аргумента в parent::__construct($id, $table, $ds);
Динамическое создание моделей
Вы можете динамически создавать экземпляры моделей, используя синтаксис массива $id.
$Post = new Model(array('table' => 'posts', 'name' => 'Post', 'ds' => 'connection2')); Создаст модель, связанную с таблицей записей в подключении connection2. Динамическое создание моделей полезно, когда вам нужен объект модели без ассоциаций или привязанных поведений.
Параметры
- boolean|integer|string|array
$idнеобязательно false Установите этот идентификатор для этой модели при запуске. Также может быть массивом параметров, см. выше.
- строка
$tableнеобязательно null - Имя таблицы базы данных для использования.
- строка
$dsнеобязательно null - Имя подключения к источнику данных.
Переопределяет
Object::__construct() __get()исходный код public
__get( string $name )
Возвращает значение запрошенной переменной, если она может быть установлена с помощью __isset()
Параметры
- строка
$name - Запрошенная переменная для получения её значения или ссылки
Возвращает
mixedЗначение запрошенной переменной, если она задана
__isset()исходный код public
__isset( string $name )
Обрабатывает леничную загрузку ассоциаций модели, проверяя массивы ассоциаций на наличие запрашиваемой переменной
Параметры
- строка
$name - Переменная, проверяемая на существование в классе
Возвращает
booleantrue, если переменная существует (если это не загруженная ассоциация модели, она будет создана), иначе false
_addToWhiteList()исходный код protected
_addToWhiteList( string $key , array $options )
Вспомогательный метод для saveAll() и т.д., чтобы добавить внешний ключ к списку полей
Параметры
- строка
$key - Имя поля, которое нужно добавить в список
- массив
$options - Список параметров
Возвращает
массивПараметры
_clearCache()исходный код protected
_clearCache( string $type null )
Очищает кеш для этой модели.
Параметры
- строка
$typeнеобязательно null Если null, это удаляет кэшированные представления, если Cache.check имеет значение true. Используется для удаления кэша запросов.
Возвращает
mixedTrue при удалении, иначе null
_collectForeignKeys()исходный код protected
_collectForeignKeys( string $type 'belongsTo' )
Сбор внешних ключей из ассоциаций.
Параметры
- строка
$typeнеобязательно 'belongsTo' - Тип ассоциации.
Возвращает
массив_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'); usage: $this->ModelName->modelMethods();
_deleteDependent()исходный код protected
_deleteDependent( string $id , boolean $cascade )
Каскадно удаляет записи модели через связанные дочерние записи hasMany и hasOne.
Параметры
- строка
$id - Идентификатор записи, которая была удалена
- boolean
$cascade - Установите в true для удаления записей, зависящих от этой записи
_deleteLinks()исходный код protected
_deleteLinks( string $id )
Каскадно удаляет записи модели через ключи объединения HABTM.
Параметры
- строка
$id - Идентификатор записи, которая была удалена
_doSave()source protected
_doSave( array $data null , array $options array() )
Сохраняет данные модели (в зависимости от белого списка, если он предоставлен) в базе данных. По умолчанию валидация происходит перед сохранением.
Параметры
- массив
$dataнеобязательно null - Данные для сохранения.
- массив
$optionsнеобязательно array() -
Может содержать следующие ключи:
- validate: Устанавливается в true/false для включения/выключения валидации.
- fieldList: Массив полей, которые вы хотите разрешить для сохранения.
- callbacks: Устанавливается в false для отключения обратных вызовов. Использование 'before' или 'after' включит только эти обратные вызовы.
-
counterCache: Логическое значение для управления обновлением кэш-значений счётчиков (если таковые имеются).
Возвращает
смешанный типПри успехе Model::$data, если оно не пустое, или true; false при ошибке
Выбрасывает
PDOExceptionСсылка
http://book.cakephp.org/2.0/ru/models/saving-your-data.html_filterResults()source protected
_filterResults( array $results , boolean $primary true )
Пропускает результаты запроса через методы model и behavior afterFind().
Параметры
- массив
$results - Результаты для фильтрации
- логическое значение
$primaryнеобязательно true - Если это результаты основной модели (результаты из модели, где была выполнена операция поиска)
Возвращает
массивНабор отфильтрованных результатов
Вызывает
Model.afterFind $this, array($results, $primary)_findAll()source protected
_findAll( string $state , array $query , array $results array() )
Обрабатывает логику фильтрации before/after для операций find('all'). Вызывается только методом Model::find().
Параметры
- строка
$state - Либо "before", либо "after"
- массив
$query - Запрос.
- массив
$resultsнеобязательно array() - Результаты.
Возвращает
массивСм. также
Model::find()_findCount()source protected
_findCount( string $state , array $query , array $results array() )
Обрабатывает логику фильтрации before/after для операций find('count'). Вызывается только методом Model::find().
Параметры
- строка
$state - Либо "before", либо "after"
- массив
$query - Запрос.
- массив
$resultsнеобязательно array() - Результаты.
Возвращает
целое числоКоличество найденных записей или false
См. также
Model::find()_findFirst()source protected
_findFirst( string $state , array $query , array $results array() )
Обрабатывает логику фильтрации before/after для операций find('first'). Вызывается только методом Model::find().
Параметры
- строка
$state - Либо "before", либо "after"
- массив
$query - Запрос.
- массив
$resultsнеобязательно array() - Результаты.
Возвращает
массивСм. также
Model::find()_findList()source protected
_findList( string $state , array $query , array $results array() )
Обрабатывает логику фильтрации before/after для операций find('list'). Вызывается только методом Model::find().
Параметры
- строка
$state - Либо "before", либо "after"
- массив
$query - Запрос.
- массив
$resultsнеобязательно array() - Результаты.
Возвращает
массивПары "ключ-значение" первичных ключей/значений поля отображения всех найденных записей
См. также
Model::find()_findNeighbors()source protected
_findNeighbors( string $state , array $query , array $results array() )
Определяет значение предыдущего поля, затем использует логику для поиска записей с "оберткой" и возвращает их.
Параметры
- строка
$state - Либо "before", либо "after"
- массив
$query - Запрос.
- массив
$resultsнеобязательно array() - Результаты.
Возвращает
массив_findThreaded()source protected
_findThreaded( string $state , array $query , array $results array() )
В случае возврата неоднозначных результатов (несколько результатов верхнего уровня с различными parent_id) результаты верхнего уровня с различными parent_id по отношению к первому результату будут отброшены.
Параметры
- строка
$state - Либо "before", либо "after".
- массив
$query - Запрос.
- массив
$resultsнеобязательно array() - Результаты.
Возвращает
массивПотоковые результаты
_generateAssociation()source protected
_generateAssociation( string $type , string $assocKey )
Создаёт ассоциацию на основе массива из строки.
Параметры
- строка
$type - 'belongsTo', 'hasOne', 'hasMany', 'hasAndBelongsToMany'
- строка
$assocKey - Ключ ассоциации.
_isUUIDField()source protected
_isUUIDField( string $field )
Проверяет, является ли переданное поле полем UUID.
Параметры
- строка
$field - поле для проверки
Возвращает
логическое значение_normalizeXmlData()source protected
_normalizeXmlData( array $xml )
Нормализует Xml::toArray() для использования в Model::save()
Параметры
- массив
$xml - XML в виде массива
Возвращает
массив_prepareUpdateFields()source protected
_prepareUpdateFields( array $data )
Вспомогательный метод для Model::updateCounterCache(). Проверяет поля для обновления.
Параметры
- массив
$data - Поля записи, которые будут обновлены
Возвращает
массивВозвращает обновлённые значения внешних ключей, а также ключ 'old' с содержанием старых значений, или пустой массив, если внешние ключи не обновляются.
_readDataSource()source protected
_readDataSource( string $type , array $query )
Чтение из источника данных
Model::_readDataSource() используется всеми вызовами find() для чтения из источника данных и может быть перегружен для кэширования вызовов источника данных.
protected function _readDataSource($type, $query) {
$cacheName = md5(json_encode($query) . json_encode($this->hasOne) . json_encode($this->belongsTo));
$cache = Cache::read($cacheName, 'cache-config-name');
if ($cache !== false) {
return $cache;
}
$results = parent::_readDataSource($type, $query);
Cache::write($cacheName, $results, 'cache-config-name');
return $results;
} Параметры
- строка
$type - Тип операции поиска (все / первый / счёт / соседи / список / потоковый)
- массив
$query - Поля опций (условия / поля / соединения / лимит / смещение / порядок / страница / группа / обратные вызовы)
Возвращает
массив_saveMulti()source protected
_saveMulti( array $joined , integer|string $id , DataSource $db )
Сохраняет данные hasAndBelongsToMany модели в базе данных.
Параметры
- массив
$joined - Данные для сохранения
- целое число/строка
$id - ID записи в этой модели
-
DataSource$db - Экземпляр источника данных.
_setAliasData()source protected
_setAliasData( array $data )
Перемещение значений в псевдоним
Параметры
- массив
$data - Данные.
Возвращает
массивafterDelete()source public
afterDelete( )
Вызывается после каждой операции удаления.
Ссылка
http://book.cakephp.org/2.0/ru/models/callback-methods.html#afterdeleteafterFind()source public
afterFind( mixed $results , boolean $primary false )
Вызывается после каждой операции поиска. Может быть использована для модификации любых результатов, возвращаемых find(). Значение возврата должно быть (изменёнными) результатами.
Параметры
- смешанный
$results - Результаты операции поиска
- логическое
$primaryнеобязательно false - Указывает, запрашивается ли эта модель непосредственно (или как ассоциация)
Возвращает
смешанныйРезультат операции поиска
Ссылка
http://book.cakephp.org/2.0/ru/models/callback-methods.html#afterfindafterSave()source public
afterSave( boolean $created , array $options array() )
Вызывается после каждой успешной операции сохранения.
Параметры
- логическое
$created - True, если это сохранение создало новую запись
- массив
$optionsнеобязательно array() - Опции, переданные из Model::save().
Ссылка
http://book.cakephp.org/2.0/ru/models/callback-methods.html#aftersaveСм. также
Model::save()beforeDelete()source public
beforeDelete( boolean $cascade true )
Вызывается перед каждой операцией удаления.
Параметры
- логическое
$cascadeнеобязательно true - Если true, записи, зависящие от этой записи, также будут удалены
Возвращает
логическоеTrue, если операция должна быть продолжена, false — если её следует прервать
Ссылка
http://book.cakephp.org/2.0/ru/models/callback-methods.html#beforedeletebeforeFind()source public
beforeFind( array $query )
Вызывается перед каждой операцией поиска. Возвращает false, если вы хотите остановить вызов find(), иначе возвращает (изменённые) данные запроса.
Параметры
- массив
$query - Данные, используемые для выполнения этого запроса, т.е. условия, сортировка и т.д.
Возвращает
смешанныйtrue, если операция должна быть продолжена, false — если её следует прервать; или изменённые $query для продолжения с новым $query
Ссылка
http://book.cakephp.org/2.0/ru/models/callback-methods.html#beforefindbeforeSave()source public
beforeSave( array $options array() )
Вызывается перед каждой операцией сохранения после валидации. Возвращение значения, отличного от true, прерывает сохранение.
Параметры
- массив
$optionsнеобязательно array() - Опции, переданные из Model::save().
Возвращает
логическоеTrue, если операция должна быть продолжена, false — если её следует прервать
Ссылка
http://book.cakephp.org/2.0/ru/models/callback-methods.html#beforesaveСм. также
Model::save()beforeValidate()source public
beforeValidate( array $options array() )
Вызывается во время операций валидации до валидации. Обратите внимание, что пользовательские правила валидации могут быть определены в $validate.
Параметры
- массив
$optionsнеобязательно array() - Опции, переданные из Model::save().
Возвращает
логическоеTrue, если операция валидации должна быть продолжена, false — для прерывания
Ссылка
http://book.cakephp.org/2.0/ru/models/callback-methods.html#beforevalidateСм. также
Model::save()bindModel()source public
bindModel( array $params , boolean $reset true )
Связывать ассоциации моделей на лету.
Если $reset равно false, ассоциация не будет сброшена к исходным значениям, определённым в модели
Пример: Добавить новую связь hasOne в модель Profile, не определённую в исходном коде модели:
$this->User->bindModel(array('hasOne' => array('Profile')));
Связи, которые не сделаны постоянными, будут сброшены при следующем вызове Model::find() для этой модели.
Параметры
- массив
$params - Набор связей (индексированный по типу связи)
- логическое
$resetнеобязательно true - Установить в false, чтобы сделать связь постоянной
Возвращает
логическоеУспех
Ссылка
http://book.cakephp.org/2.0/ru/models/associations-linking-models-together.html#creating-and-destroying-associations-on-the-flybuildQuery()source public
buildQuery( string $type 'first' , array $query array() )
Строит массив запроса, используемый источником данных для генерации запроса для извлечения данных.
Параметры
- строка
$typeнеобязательно 'first' - Тип операции поиска (all / first / count / neighbors / list / threaded)
- массив
$queryнеобязательно array() - Поля опций (условия / поля / соединения / limit / offset / order / page / group / callbacks)
Возвращает
массив|nullМассив запроса или null, если он не может быть построен по каким-либо причинам
Триггер
Model.beforeFind $this, array($query)См. также
Model::find()clear()source public
clear( )
Эта функция является удобной оболочкой для создания (false) и, как следует из названия, очищает id, данные и ошибки валидации.
Возвращает
логическоеВсегда true при успехе
См. также
Model::create()create()source public
create( boolean|array $data array() , boolean $filterKey false )
Инициализирует модель для записи новой записи, загружая значения по умолчанию для полей, которые не определены в $data, и очищая предыдущие ошибки валидации. Особенно полезно для сохранения данных в циклах.
Параметры
- логическое|массив
$dataнеобязательно array() Необязательный массив данных для присвоения модели после её создания. Если null или false, значения по умолчанию схемы не объединяются.
- логическое
$filterKeyнеобязательно false - Если true, переписывает любые входные данные первичного ключа пустым значением
Возвращает
массивТекущие Model::data; после объединения $data и/или значений по умолчанию из базы данных
Ссылка
http://book.cakephp.org/2.0/ru/models/saving-your-data.html#model-create-array-data-arraydeconstruct()source public
deconstruct( string $field , array|object $data )
Разобрать сложный тип данных (массив или объект) в значение одного поля.
Параметры
- строка
$field - Имя поля, которое должно быть разобрано
- массив|объект
$data - Массив или объект, который должен быть разбит на поле
Возвращает
смешанныйПолученные данные, которые должны быть присвоены полю
delete()source public
delete( integer|string $id null , boolean $cascade true )
Удаляет запись для заданного идентификатора. Если идентификатор не указан, используется текущий идентификатор. Возвращает true при успехе.
Параметры
- integer|string
$idнеобязательный null - Идентификатор записи для удаления
- boolean
$cascadeнеобязательный true - Установить в значение true, чтобы удалить записи, зависящие от этой записи
Возвращаемое значение
booleanTrue при успехе
Триггеры
Model.beforeDelete $this, array($cascade)Model.afterDelete $this
Ссылка
http://book.cakephp.org/2.0/ru/models/deleting-data.htmldeleteAll()source public
deleteAll( mixed $conditions , boolean $cascade true , boolean $callbacks false )
Удаляет несколько записей модели на основе набора условий.
Параметры
- mixed
$conditions - Условия для соответствия
- boolean
$cascadeнеобязательный true - Установить в значение true, чтобы удалить записи, зависящие от этой записи
- boolean
$callbacksнеобязательный false - Выполнять коллбеки
Возвращаемое значение
booleanTrue при успехе, false при ошибке
Ссылка
http://book.cakephp.org/2.0/ru/models/deleting-data.html#deleteallescapeField()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 не передан, вызывается Model::getID(), чтобы получить текущий идентификатор записи, а затем выполняется Model::find('count') на текущем источнике данных для определения существования записи в постоянном хранилище.
Параметры
- integer|string
$idнеобязательный null - Идентификатор записи для проверки существования
Возвращаемое значение
booleanTrue, если такая запись существует
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-fieldfind()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,
)); В дополнение к стандартным ключам запроса выше, вы можете предоставить ключи, специфичные для источника данных и поведения. Например, при использовании 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.htmlgetAffectedRows()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, который обрабатывает любые коллбеки. Вы можете использовать этот экземпляр для регистрации новых слушателей или коллбеков к событиям модели, или создавать свои собственные события и вызывать их по мере необходимости.
Возвращаемое значение
CakeEventManagergetID()source public
getID( integer $list 0 )
Возвращает идентификатор текущей записи.
Параметры
- integer
$listнеобязательный 0 - Индекс, на котором находится составной идентификатор
Возвращаемое значение
mixedИдентификатор текущей записи, false, если идентификатор отсутствует
getInsertID()source public
getInsertID( )
Возвращает ID последней записи, вставленной этим модели.
Возвращает
mixedID последней вставленной записи
getLastInsertID()source public
getLastInsertID( )
Возвращает ID последней записи, вставленной этой моделью.
Возвращает
mixedID последней вставленной записи
getNumRows()source public
getNumRows( )
Возвращает количество строк, возвращённых последним запросом.
Возвращает
integerКоличество строк
getVirtualField()source public
getVirtualField( string $field null )
Возвращает выражение для виртуального поля модели.
Параметры
- string
$fieldнеобязательно null - Имя поля для поиска
Возвращает
mixedЕсли $field является строковым выражением, связанным с виртуальным полем $field. Если $field равен null, возвращает массив всех виртуальных полей модели или false, если такие поля отсутствуют.
hasAny()source public
hasAny( array $conditions null )
Возвращает true, если существует запись, удовлетворяющая заданным условиям.
Параметры
- array
$conditionsнеобязательно null - Массив SQL-условий
Возвращает
booleanTrue, если такая запись существует
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 - Метод, который нужно вызвать.
Возвращает
booleanTrue, если метод вызываем.
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"
Возвращает
booleanTrue, если поле является внешним ключом, указанным в массиве 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
Возвращает
booleanFalse, если найдены какие-либо записи, соответствующие любым полям
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() - Любые ключи присоединения, которые должны быть объединены с запрошенными ключами
Возвращает
arrayonError()source public
onError( )
Вызывается при возникновении ошибки на уровне источника данных.
Ссылка
http://book.cakephp.org/2.0/en/models/callback-methods.html#onerrorquery()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/en/models/retrieving-your-data.html#model-queryread()source public
read( string|array $fields null , integer|string $id null )
Возвращает список полей из базы данных и устанавливает текущие данные модели (Model::$data) с найденной записью.
Параметры
- string|array
$fieldsнеобязательно null - Строка имени одного поля или массив имён полей.
- integer|string
$idнеобязательно null - ID записи для чтения
Возвращает
arrayМассив полей базы данных или false, если не найдено
Ссылка
http://book.cakephp.org/2.0/ru/models/retrieving-your-data.html#model-readresetAssociations()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 при ошибке
Вызывает
ExceptionPDOException
Вызывает обратные вызовы
Model.beforeSave $this, array($options)Model.afterSave $this, array($created, $options)
Ссылка
http://book.cakephp.org/2.0/ru/models/saving-your-data.htmlsaveAll()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-arrayhttp://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-arraysaveField()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-falsesaveMany()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-arrayschema()source public
schema( boolean|string $field false )
Возвращает массив метаданных таблицы (названия и типы столбцов) из базы данных. $field => ключи(тип, null, значение по умолчанию, ключ, длина, дополнительные)
Параметры
- boolean|string
$fieldнеобязательно false - Установите в значение true для перезагрузки схемы или строку для возвращения конкретного поля
Возвращает
array|nullМассив метаданных таблицы
set()source public
set( string|array|SimpleXmlElement|DomNode $one , string $two null )
Эта функция выполняет две операции:
- сканирует массив $one в поисках первичного ключа и, если он найден, устанавливает текущий идентификатор в значение $one[id]. Для всех ключей, кроме 'id', ключи и значения из $one копируются в свойство 'data' этого объекта.
- Возвращает массив со всеми ключами и значениями из $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.htmlsetDataSource()source public
setDataSource( string $dataSource null )
Устанавливает источник данных, к которому привязан этот модель.
Параметры
- string
$dataSourceнеобязательно null - Имя источника данных, как определено в app/Config/database.php
Исключения
MissingConnectionExceptionsetInsertID()source public
setInsertID( integer|string $id )
Устанавливает идентификатор последней записи, вставленной этой моделью.
Параметры
- integer|string
$id - Идентификатор последней вставленной записи
setSource()source public
setSource( string $tableName )
Устанавливает пользовательскую таблицу для вашего класса модели. Используется контроллером для выбора таблицы базы данных.
Параметры
- string
$tableName - Имя пользовательской таблицы
Исключения
MissingTableExceptionпри отсутствии таблицы базы данных $tableName в источнике данных
unbindModel()source public
unbindModel( array $params , boolean $reset true )
Выключает ассоциации на лету.
Если $reset равен false, ассоциация не будет сброшена к исходным значениям, определённым в модели.
Пример: Отключение связанной модели Заявка о поддержке, чтобы временно облегчить модель Пользователь:
$this->User->unbindModel(array('hasMany' => array('SupportRequest'))); Или альтернативно: $this->User->unbindModel(array('hasMany' => 'SupportRequest'));
Непривязанные модели, которые не сделаны постоянными, будут сброшены при следующем вызове Model::find()
Параметры
- 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-flyupdateAll()source public
updateAll( array $fields , mixed $conditions true )
Обновляет несколько записей модели на основе набора условий.
Параметры
- array
$fields Набор полей и значений, индексированных по полям. Поля рассматриваются как фрагменты SQL, для вставки значений вручную необходимо экранировать данные.
- mixed
$conditionsнеобязательно true - Условия для соответствия, true для всех записей
Возвращает
booleanTrue при успехе, false при ошибке
Ссылка
http://book.cakephp.org/2.0/ru/models/saving-your-data.html#model-updateall-array-fields-mixed-conditionsupdateCounterCache()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.
Возвращает
booleanTrue, если нет ошибок
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
Возвращает
mixedВозвращает результат вызова метода
log()source public
log( string $msg , integer $type LOG_ERR , null|string|array $scope null )
Удобный метод для записи сообщения в CakeLog. Подробнее о записи в логи см. CakeLog::write().
Параметры
- строка
$msg - Сообщение для записи в лог
- целое число
$typeнеобязательно LOG_ERR - Константа типа ошибки. Определена в app/Config/core.php.
- null|строка|массив
$scopeнеобязательно null Области (сферы), в которых создается сообщение для записи в лог. Дополнительную информацию о разделах ведения журнала см. в CakeLog::config().
Возвращает
booleanУспешность записи в лог
requestAction()source public
requestAction( string|array $url , array $extra array() )
Вызывает метод контроллера из любой точки. Может использоваться для подключения контроллеров друг к другу или связывания плагинов с основным приложением. requestAction может использоваться для возврата рендеренных представлений или получения возвращаемого значения из действий контроллеров.
Внутри метод использует Router::reverse() для преобразования параметра $url в строку URL. Вы должны использовать форматы URL, совместимые с Router::reverse().
Передача данных POST и GET
Данные POST и GET могут быть смоделированы в requestAction. Используйте $extra['url'] для данных GET. Параметр $extra['data'] позволяет моделировать данные POST.
Параметры
- строка|массив
$url Строка или массив URL. В отличие от других массивов URL в CakePHP, этот URL не будет автоматически обрабатывать переданные и именованные аргументы в параметре $url.
- массив
$extraнеобязательно array() Если массив содержит ключ "return", он устанавливает AutoRender в true. Также может использоваться для отправки данных GET/POST и именованных/переданных аргументов.
Возвращает
mixedБулевое значение true или false при успехе/неудаче или содержимое рендеренного действия, если в $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-I18nModel.html