Spec-Zone.ru › CakePHP 2.7

Класс 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.

Объект
Extended by ModelBehavior

Непосредственные известные подклассы

AclBehavior, ContainableBehavior, TranslateBehavior, TreeBehavior
Пакет: Cake\Модель
Авторские права: 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().

Возвращает

boolean
bool

См. также

Model::save()

afterValidateисходный код публичный

afterValidate( Model $model )

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

Параметры

Model $model
Модель, использующая это поведение

Возвращает

mixed
False остановит распространение этого события другим поведениям

beforeDeleteисходный код публичный

beforeDelete( Model $model , boolean $cascade true )

beforeDelete вызывается перед любой операцией удаления прикрепленной модели, но после вызова beforeDelete модели. Возврат false из beforeDelete прервет удаление.

Параметры

Model $model
Модель, использующая это поведение
логическое $cascade необязательно true
Если true, записи, зависящие от этой записи, также будут удалены

Возвращает

mixed
False, если операция должна быть прервана. Любой другой результат продолжит операцию.

beforeFindисходный код публичный

beforeFind( Model $model , array $query )

beforeFind можно использовать для отмены операций поиска или изменения запроса, который будет выполнен. Возврат null/false позволит прервать поиск. Возврат массива позволит изменить/заменить запрос, который будет выполнен.

Параметры

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

Возвращает

boolean|array
False или null прервут операцию. Вы можете вернуть массив, чтобы заменить $query, который в конечном итоге будет выполнен.

beforeSaveисходный код публичный

beforeSave( Model $model , array $options array() )

beforeSave вызывается перед сохранением модели. Возврат false из обратного вызова beforeSave прервёт операцию сохранения.

Параметры

Model $model
Модель, использующая это поведение
массив $options необязательно массив()
Параметры, переданные из Model::save().

Возвращает

mixed
False, если операция должна быть прервана. Любой другой результат продолжит операцию.

См. также

Model::save()

beforeValidateисходный код публичный

beforeValidate( Model $model , array $options array() )

beforeValidate вызывается перед проверкой модели. Вы можете использовать этот обратный вызов, чтобы добавить правила проверки поведения в массив validate модели. Возврат false позволит вам сделать проверку недействительной.

Параметры

Model $model
Модель, использующая это поведение
массив $options необязательно массив()
Параметры, переданные из Model::save().

Возвращает

mixed
False или 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

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

__constructsource public

__construct( )

Конструктор, бездействующий

_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
Имя этого класса

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

$mapMethodssource

public массив

Позволяет сопоставление регулярных выражений, совместимых с preg, с публичными или закрытыми методами в этом классе, где ключ массива — регулярное выражение, разделенное символом /, а значение — метод класса. Аналогично функциональности магических методов findBy* / findAllBy*.

array()

$settingssource

public массив

Содержит настройки конфигурации для использования с отдельными объектами модели. Это используется, потому что если несколько моделей используют этот Бейхевиор, каждая будет использовать один и тот же экземпляр объекта. Настройки каждой модели должны храниться в ассоциативном массиве, индексированном по имени модели.

См. также

Model::$alias
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-ModelBehavior.html

Spec-Zone.ru

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