Класс TranslateBehavior
Поведение для перевода
- CakeObject
-
ModelBehavior
-
TranslateBehavior
Ссылка: https://book.cakephp.org/2.0/ru/core-libraries/behaviors/translate.html
Авторские права: Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org)
Лицензия: MIT License
Расположение: Cake/Model/Behavior/TranslateBehavior.php
Краткое описание свойств
-
$_joinTableprotectedХранит объект joinTable для генерации соединений.object - Хранит модель во время выполнения для генерации соединений.
$_runtimeModelprotected -
$runtimepublicИспользуется для конфигурации модели во время выполнения.array
Наследованные свойства
Краткое описание методов
- _addAllJoins() protectedДобавляет все необходимые соединения для переведенных полей.
- _addJoin() protectedДобавляет соединение для переведенных полей.
- _checkConditions() protected
Проверяет условия запроса на наличие переведенных полей. Возвращает массив найденных переведенных полей в условиях.
- _getConditionFields() protectedРекурсивно извлекает имена полей условий.
- _getFields() protectedПолучает поля для извлечения.
- _getLocale() protectedПолучение выбранного языка для модели.
- _prepareTranslations() protected
Подготавливает данные для сохранения переведенных записей. Добавляет пустые поля и заполняет данные для сохранения по нескольким языкам.
- _removeField() protectedОбновление настроек во время выполнения для заданного поля.
- _setRuntimeData() protectedУстанавливает данные во время выполнения.
- afterDelete() publicОбработчик afterDelete.
- afterFind() publicОбработчик afterFind.
- afterSave() publicОбработчик afterSave.
- afterValidate() public
Восстанавливает данные модели до исходных данных. Это решает проблемы с saveAssociated и validate = first.
- beforeFind() publicОбработчик beforeFind.
- beforeSave() publicОбработчик beforeSave.
- beforeValidate() publicОбработчик beforeValidate.
- bindTranslation() public
Связывает перевод для полей, необязательно с ассоциацией hasMany для фиктивного поля.
- cleanup() publicОбработчик очистки, отвязывает привязанные переводы и удаляет информацию о настройках.
- setup() publicОбработчик.
- translateModel() publicПолучение экземпляра модели для переводов.
- unbindTranslation() public
Отвязывает перевод для полей, необязательно отвязывает ассоциацию hasMany для фиктивного поля.
Подробное описание методов
_addAllJoins()source protected
_addAllJoins( Model $Model , array $query , array $addFields )
Добавляет все необходимые соединения для переведенных полей.
Параметры
-
Model$Model - Модель, над которой ведется работа.
- массив
$query - Массив запроса, к которому добавляются соединения.
- массив
$addFields - Поля, к которым добавляются соединения.
Возвращает
массивИзмененный запрос
_addJoin()source protected
_addJoin( Model $Model , array $query , string $field , string $aliasField , string|array $locale )
Добавляет соединение для переведенных полей.
Параметры
-
Model$Model - Модель, над которой ведется работа.
- массив
$query - Массив запроса, к которому добавляется соединение.
- строка
$field - Имя поля, к которому добавляется соединение.
- строка
$aliasField - Имя алиасированного поля, к которому добавляется соединение.
- строка|массив
$locale - Язык(и), для которых добавляются соединения.
Возвращает
массивИзмененный запрос
_checkConditions()source protected
_checkConditions( Model $Model , array $query )
Проверяет условия запроса на наличие переведенных полей. Возвращает массив найденных переведенных полей в условиях.
Параметры
-
Model$Model - Модель, которая читается.
- массив
$query - Массив запроса.
Возвращает
массивСписок переведенных полей, которые присутствуют в условиях.
_getConditionFields()source protected
_getConditionFields( Model $Model , array $conditions )
Рекурсивно извлекает имена полей условий.
Параметры
-
Model$Model - Модель, которая читается.
- массив
$conditions - Массив условий.
Возвращает
массивСписок полей условий.
_getFields()source protected
_getFields( Model $Model , array $query )
Получает поля для извлечения.
Параметры
-
Model$Model - Модель, над которой ведется работа.
- массив
$query - Массив запроса, из которого берутся поля.
Возвращает
массивПоля.
_getLocale()source protected
_getLocale( Model $Model )
Получение выбранного языка для модели
Параметры
-
Model$Model - Модель, для которой необходимо установить/получить язык.
Возвращает
смешанный типстрока или ложь
_prepareTranslations()source protected
_prepareTranslations( Model $Model , array $data )
Подготавливает данные для сохранения переведенных записей. Добавляет пустые поля и заполняет данные для сохранения по нескольким языкам.
Параметры
-
Model$Model - Модель, использующая это поведение
- массив
$data - Разряженные данные, которые были предоставлены.
Возвращает
массивПолностью заполненные данные для сохранения.
_removeField()source protected
_removeField( Model $Model , string $field )
Обновление настроек во время выполнения для заданного поля.
Параметры
-
Model$Model - Модель, использующая это поведение
- строка
$field - Обновляемое поле.
_setRuntimeData()source protected
_setRuntimeData( Model $Model )
Устанавливает данные выполнения.
Используется из beforeValidate() и beforeSave() для решения проблем совместимости и для сохранения переводов даже при отключенной валидации.
Параметры
-
Model$Model - Модель, использующая этот метод.
afterDelete()source public
afterDelete( Model $Model )
Обработчик после удаления
Параметры
-
Model$Model - Модель, на которой был выполнен обработачик.
Переопределяет
ModelBehavior::afterDelete() afterFind()source public
afterFind( Model $Model , array $results , boolean $primary false )
Обработчик после поиска
Параметры
-
Model$Model - Модель, на которой был выполнен поиск
- массив
$results - Массив результатов модели.
- логическое значение
$primaryнеобязательно false - Произошел ли поиск на $model.
Возвращает
массивИзменённые результаты
Переопределяет
ModelBehavior::afterFind() afterSave()source public
afterSave( Model $Model , boolean $created , array $options array() )
Обработчик после сохранения
Параметры
-
Model$Model - Модель, на которой был выполнен обработачик.
- логическое значение
$created - Создал ли сохранение запись.
- массив
$optionsнеобязательно array() - Параметры, переданные из Model::save().
Переопределяет
ModelBehavior::afterSave() afterValidate()source public
afterValidate( Model $Model )
Восстанавливает данные модели к исходным. Это решает проблемы с saveAssociated и validate = first.
Параметры
-
Model$Model - Модель, использующая этот метод.
Переопределяет
ModelBehavior::afterValidate() beforeFind()source public
beforeFind( Model $Model , array $query )
Обработчик перед поиском
Параметры
-
Model$Model - Модель, на которой выполняется поиск.
- массив
$query - Массив параметров запроса.
Возвращает
массивИзменённый запрос
Переопределяет
ModelBehavior::beforeFind() beforeSave()source public
beforeSave( Model $Model , array $options array() )
Обработчик перед сохранением.
Копирует данные в свойство выполнения, когда $options['validate'] отключено или данные выполнения еще не установлены.
Параметры
-
Model$Model - Модель, на которой был вызван метод сохранения.
- массив
$optionsнеобязательно array() - Параметры, переданные из Model::save().
Возвращает
логическое значениеtrue.
См.
Model::save()Переопределяет
ModelBehavior::beforeSave() beforeValidate()source public
beforeValidate( Model $Model , array $options array() )
Обработчик перед валидацией
Параметры
-
Model$Model - Модель, на которой был вызван invalidFields.
- массив
$optionsнеобязательно array() - Параметры, переданные из Model::save().
Возвращает
логическое значениеСм.
Model::save()Переопределяет
ModelBehavior::beforeValidate() bindTranslation()source public
bindTranslation( Model $Model , string|array $fields , boolean $reset true )
Связывает перевод для полей, необязательно с ассоциацией hasMany для фиктивного поля.
Примечание Следует избегать привязки переводов, которые перекрывают существующие свойства модели. Это может привести к непредсказуемому и нежелательному поведению.
Параметры
-
Model$Model - модель, использующая этот метод
- строка|массив
$fields - строка с полем или массив (поле1, поле2=>ИмяАссоциации, поле3)
- логическое значение
$resetнеобязательно true Оставить значение true, чтобы поля изменялись только для следующей операции. Если значение false, поле будет добавлено для всех будущих запросов.
Возвращает
логическое значениеВыбрасывает
CakeExceptionпри попытке привязать перевод с именем, используемым для вызова метода. Это запрещено, так как оно затеняет Model::$name.
cleanup()source public
cleanup( Model $Model )
Обработчик очистки отвязывает привязанные переводы и удаляет настройки.
Параметры
-
Model$Model - Модель, которая отсоединяется.
Переопределяет
ModelBehavior::cleanup() setup()source public
setup( Model $Model , array $config array() )
Обработчик
$config для TranslateBehavior должен быть массивом ('fields' => массив ('поле_один', 'поле_два' => 'АссоциацияПоля', 'поле_три'))
В приведенном выше примере будет выполнено только одно постоянное присоединение hasMany (для поля_два как АссоциацияПоля)
$config может быть пустым - и переводы настраиваются динамически методом bindTranslation()
По умолчанию для извлечения переводов используются INNER соединения. Для использования других типов соединений $config должен содержать ключ 'joinType':
array(
'fields' => array('field_one', 'field_two' => 'FieldAssoc', 'field_three'),
'joinType' => 'LEFT',
) В модели он может быть настроен следующим образом:
public $actsAs = array(
'Translate' => array(
'content',
'title',
'joinType' => 'LEFT',
),
); Параметры
-
Model$Model - Модель, к которой прикрепляется метод.
- массив
$configнеобязательно array() - Массив данных конфигурации.
Возвращает
смешанное значениеПереопределяет
ModelBehavior::setup() translateModel()source public
translateModel( Model $Model )
Получение экземпляра модели для переводов.
Если у модели есть свойство translateModel, оно будет использоваться как имя класса для поиска/использования. Если свойство translateModel не найдено, будет использоваться 'I18nModel'.
Параметры
-
Model$Model - Модель, для которой требуется получить translateModel.
Возвращает
ModelunbindTranslation()source public
unbindTranslation( Model $Model , string|array $fields null )
Отвязывает перевод для полей, необязательно отвязывает ассоциацию hasMany для фиктивного поля
Параметры
-
Model$Model - модель, использующая этот метод
- строка|массив
$fieldsнеобязательно null строка с полем, или массив (поле1, поле2=>ИмяАссоциации, поле3), или null для отвязки всех оригинальных переводов
Возвращает
логическое значениеМетоды, унаследованные от ModelBehavior
_addToWhitelist()source protected
_addToWhitelist( Model $model , string $field )
Если свойство whitelist модели $model не пусто, $field будет добавлено в него. Примечание: этот метод должен только использоваться в beforeValidate или beforeSave, чтобы гарантировать, что он изменяет whitelist только для текущей операции сохранения. Также убедитесь, что вы явно установили значение поля, которое вы разрешаете.
Параметры
-
Model$model - Модель, использующая этот метод
- строка
$field - Поле, которое нужно добавить в список разрешенных полей модели $model
beforeDelete()source public
beforeDelete( Model $model , boolean $cascade true )
Метод beforeDelete вызывается перед удалением присоединённой модели, но после вызова метода beforeDelete модели. Возврат значения false из beforeDelete прервёт удаление.
Параметры
-
Model$model - Модель, использующая этот behaviour
- boolean
$cascadeнеобязательно true - Если true, записи, зависящие от этой записи, также будут удалены
Возвращает
mixedFalse, если операция должна быть прервана. Любой другой результат продолжит выполнение.
onError()source public
onError( Model $model , string $error )
Обработчик ошибок источника данных
Параметры
-
Model$model - Модель, использующая этот behaviour
- string
$error - Ошибка, сгенерированная источником данных
Методы, унаследованные от CakeObject
_mergeVars()source protected
_mergeVars( array $properties , string $class , boolean $normalize true )
Объединяет свойства объекта $property со свойствами в определении класса $class. Значение свойства для этого класса будет объединено сверху $class.
Это обеспечивает некоторую DRY-магию CakePHP. Если вы хотите это отключить, переопределите этот метод как пустую функцию.
Параметры
- array
$properties - Наименования свойств для объединения.
- string
$class - Класс для объединения свойств с.
- boolean
$normalizeнеобязательно true - Установите в значение true, чтобы выполнить свойства через Hash::normalize() перед объединением.
_set()source protected
_set( array $properties array() )
Позволяет установить несколько свойств объекта в одной строке кода. Будут установлены только свойства, которые являются частью объявления класса.
Параметры
- array
$propertiesнеобязательно array() - Ассоциативный массив, содержащий свойства и соответствующие значения.
_stop()source protected
_stop( integer|string $status 0 )
Останавливает выполнение текущего скрипта. Обёртка для exit(), что упрощает тестирование.
Параметры
- integer|string
$statusнеобязательно 0 - см. http://php.net/exit для значений
dispatchMethod()source public
dispatchMethod( string $method , array $params array() )
Вызывает метод этого объекта с заданными параметрами. Предоставляет объектно-ориентированную обёртку для call_user_func_array
Параметры
- string
$method - Имя вызываемого метода
- array
$paramsнеобязательно array() - Список параметров для использования при вызове $method
Возвращает
mixedРезультат вызова метода
log()source public
log( string $msg , integer $type LOG_ERR , null|string|array $scope null )
Удобный метод для записи сообщения в CakeLog. Для получения дополнительной информации о записи в журналы, см. CakeLog::write().
Параметры
- string
$msg - Сообщение журнала
- integer
$typeнеобязательно LOG_ERR - Константа типа ошибки. Определена в app/Config/core.php.
- null|string|array
$scopeнеобязательно null Область(и), в которой создаётся сообщение журнала. См. CakeLog::config() для получения дополнительной информации о областях ведения журналов.
Возвращает
booleanУспешность записи в журнал
requestAction()source public
requestAction( string|array $url , array $extra array() )
Вызывает метод контроллера из любой точки. Может быть использован для связывания контроллеров или подключения плагинов к основному приложению. requestAction может использоваться для возврата рендеренных представлений или извлечения возвращаемого значения из действий контроллера.
Под капотом этот метод использует Router::reverse() для преобразования параметра $url в строку URL. Используйте форматы URL, совместимые с Router::reverse().
Передача данных POST и GET
Данные POST и GET могут быть смоделированы в requestAction. Используйте $extra['url'] для данных GET. Параметр $extra['data'] позволяет моделировать данные POST.
Параметры
- string|array
$url URL в виде строки или массива. В отличие от других массивов URL в CakePHP, этот URL не будет автоматически обрабатывать переданные и именованные аргументы в параметре $url.
- array
$extraнеобязательно array() Если массив содержит ключ "return", он устанавливает AutoRender в значение true. Также может использоваться для отправки данных GET/POST и именованных/переданных аргументов.
Возвращает
mixedБулевое значение true или false при успехе/неудачи, или содержимое рендеренного действия, если 'return' установлен в $extra.
toString()source public
toString( )
Преобразование CakeObject в строку. Каждый класс может переопределить этот метод по мере необходимости.
Возвращает
stringИмя этого класса
Подробное описание свойств
© 2005–2017 The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/2.10/class-TranslateBehavior.html