Класс ModelBehavior
Базовый класс поведения модели.
Определяет интерфейс поведения и содержит общие функциональные возможности взаимодействия с моделью. Поведения позволяют моделировать миксины и создавать многократно используемые блоки логики приложения, которые могут быть повторно использованы в нескольких моделях. Поведения также предоставляют способ подключения к вызовам обратного вызова модели и дополнения их поведения.
Методы миксина
Поведения могут предоставлять функциональность миксинов, объявляя публичные методы. Эти методы должны ожидать, что экземпляр модели будет перенесен в список параметров.
function doSomething(Model $model, $arg1, $arg2) { //do something }
Будут вызваны так $this->Model->doSomething($arg1, $arg2);.
Методы сопоставления
Поведения также могут определять сопоставленные методы. Сопоставленные методы используют сопоставление шаблонов для вызова методов. Это позволяет создавать методы, аналогичные методам Model::findAllByXXX для ваших поведений. Сопоставленные методы должны быть объявлены в вашем поведении $mapMethods массив. Подпись метода для сопоставленного метода немного отличается от обычного метода миксина поведения.
public $mapMethods = array('/do(\w+)/' => 'doSomething'); function doSomething(Model $model, $method, $arg1, $arg2) { //do something }
Вышеприведённое сопоставит каждый вызов метода doXXX() с поведением. Как вы можете видеть, модель по-прежнему является первым параметром, но имя вызываемого метода будет вторым параметром. Это позволяет изменять имя метода для получения дополнительной информации, подобно Model::findAllByXX.
- Объект
-
ModelBehavior
Непосредственные известные подклассы
AclBehavior, ContainableBehavior, TranslateBehavior, TreeBehaviorАвторские права: Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
Лицензия: Лицензия MIT
См.:
Model::$actsAsСм.:
BehaviorCollection::load()Расположен по адресу Cake/Model/ModelBehavior.php
Подробное описание методов
_addToWhitelistисходный код защищенный
_addToWhitelist( Model $model , string $field )
Если свойство whitelist модели $model не пустое, поле $field будет добавлено в него. Примечание: этот метод следует использовать только в beforeValidate или beforeSave, чтобы убедиться, что он изменяет только список разрешенных полей для текущей операции сохранения. Также убедитесь, что вы явно установили значение поля, которое вы разрешаете.
Параметры
-
Model$model - Модель, использующая это поведение
- строка
$field - Поле, которое нужно добавить в список разрешенных полей модели $model
afterDeleteисходный код публичный
afterDelete( Model $model )
afterDelete вызывается после любой операции удаления прикрепленной модели.
Параметры
-
Model$model - Модель, использующая это поведение
afterFindисходный код публичный
afterFind( Model $model , mixed $results , boolean $primary false )
Обратный вызов после поиска. Может использоваться для изменения любых результатов, возвращаемых функцией find.
Параметры
-
Model$model - Модель, использующая это поведение
- смешанное
$results - Результаты операции поиска
- логическое
$primaryнеобязательно false - Указывает, запрашивается ли эта модель непосредственно (или запрашивается как ассоциация)
Возвращает
mixedМассивная величина заменит значение $results — любые другие значения будут проигнорированы.
afterSaveисходный код публичный
afterSave( Model $model , boolean $created , array $options array() )
afterSave вызывается после сохранения модели.
Параметры
-
Model$model - Модель, использующая это поведение
- логическое
$created - Истина, если это сохранение создало новую запись
- массив
$optionsнеобязательно массив() - Параметры, переданные из Model::save().
Возвращает
booleanbool
См. также
Model::save()afterValidateисходный код публичный
afterValidate( Model $model )
afterValidate вызывается сразу после проверки данных модели. Вы можете использовать этот обратный вызов для выполнения любых операций очистки или подготовки данных, если это необходимо
Параметры
-
Model$model - Модель, использующая это поведение
Возвращает
mixedFalse остановит распространение этого события другим поведениям
beforeDeleteисходный код публичный
beforeDelete( Model $model , boolean $cascade true )
beforeDelete вызывается перед любой операцией удаления прикрепленной модели, но после вызова beforeDelete модели. Возврат false из beforeDelete прервет удаление.
Параметры
-
Model$model - Модель, использующая это поведение
- логическое
$cascadeнеобязательно true - Если true, записи, зависящие от этой записи, также будут удалены
Возвращает
mixedFalse, если операция должна быть прервана. Любой другой результат продолжит операцию.
beforeFindисходный код публичный
beforeFind( Model $model , array $query )
beforeFind можно использовать для отмены операций поиска или изменения запроса, который будет выполнен. Возврат null/false позволит прервать поиск. Возврат массива позволит изменить/заменить запрос, который будет выполнен.
Параметры
-
Model$model - Модель, использующая это поведение
- массив
$query - Данные, используемые для выполнения этого запроса, т. е. условия, порядок и т. д.
Возвращает
boolean|arrayFalse или null прервут операцию. Вы можете вернуть массив, чтобы заменить $query, который в конечном итоге будет выполнен.
beforeSaveисходный код публичный
beforeSave( Model $model , array $options array() )
beforeSave вызывается перед сохранением модели. Возврат false из обратного вызова beforeSave прервёт операцию сохранения.
Параметры
-
Model$model - Модель, использующая это поведение
- массив
$optionsнеобязательно массив() - Параметры, переданные из Model::save().
Возвращает
mixedFalse, если операция должна быть прервана. Любой другой результат продолжит операцию.
См. также
Model::save()beforeValidateисходный код публичный
beforeValidate( Model $model , array $options array() )
beforeValidate вызывается перед проверкой модели. Вы можете использовать этот обратный вызов, чтобы добавить правила проверки поведения в массив validate модели. Возврат false позволит вам сделать проверку недействительной.
Параметры
-
Model$model - Модель, использующая это поведение
- массив
$optionsнеобязательно массив() - Параметры, переданные из Model::save().
Возвращает
mixedFalse или null прервут операцию. Любой другой результат продолжит операцию.
См. также
Model::save()cleanupисходный код публичный
cleanup( Model $model )
Очистка любых инициализаций, выполненных этим поведением в модели. Вызывается при динамическом отделении поведения от модели с помощью Model::detach().
Параметры
-
Model$model - Модель, использующая это поведение
См. также
BehaviorCollection::detach()onErrorисходный код публичный
onError( Model $model , string $error )
Обработчик ошибок источника данных
Параметры
-
Model$model - Модель, использующая это поведение
- строка
$error - Ошибка, сгенерированная в источнике данных
setupисходный код публичный
setup( Model $model , array $config array() )
Настройка этого поведения с указанными параметрами конфигурации.
Параметры
-
Model$model - Модель, использующая это поведение
- массив
$configнеобязательно массив() - Параметры конфигурации для $model
Методы, унаследованные от Объекта
_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Имя этого класса
Краткое описание свойств
© 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-ModelBehavior.html