Класс ContainableBehavior
Поведение, позволяющее динамично и атомарно управлять ассоциациями модели, используемыми для вызова find. Наиболее полезно для ограничения количества ассоциаций и возвращаемых данных.
- Объект
-
ModelBehavior -
ContainableBehavior
Авторские права: Авторские права (с) Фонд программного обеспечения Cake, Inc. (http://cakefoundation.org)
Лицензия: Лицензия MIT
Ссылка: http://book.cakephp.org/2.0/ru/core-libraries/behaviors/containable.html
Расположение: Cake/Model/Behavior/ContainableBehavior.php
Подробное описание методов
beforeFindисходный код public
beforeFind( Model $Model , array $query )
Выполняется перед операцией find(). Используется для задания параметра 'contain' в вызове find, например:
Model->find('all', array('contain' => array('Model1', 'Model2')));
Model->find('all', array('contain' => array( 'Model1' => array('Model11', 'Model12'), 'Model2', 'Model3' => array( 'Model31' => 'Model311', 'Model32', 'Model33' => array('Model331', 'Model332') )));
Параметры
-
Model$Model - Модель, использующая поведение
- массив
$query - Параметры запроса, заданные cake
Возвращает
arrayмассив
Переопределяет
ModelBehavior::beforeFind() containисходный код public
contain( Model $Model )
Отвязывает все отношения от модели, кроме указанных. Вызов этой функции без параметров отвязывает все связанные модели.
Параметры
-
Model$Model - Модель, к которой применяется ограничение связи
Ссылка
http://book.cakephp.org/2.0/ru/core-libraries/behaviors/containable.html#using-containablecontainmentsисходный код public
containments( Model $Model , array $contain , array $containments array() , boolean $throwErrors null )
Обработка содержаний для модели.
Параметры
-
Model$Model - Модель, к которой применяется ограничение связи
- массив
$contain - Параметры для ограничения этой модели
- массив
$containmentsнеобязательно массив() - Текущий набор содержаний
- логический
$throwErrorsнеобязательно null - Показывать ли ошибки при отсутствии связи
Возвращает
arrayСодержимое
containmentsMapисходный код public
containmentsMap( array $containments )
Построение карты содержаний
Параметры
- массив
$containments - Содержимое
Возвращает
arrayПостроенное содержимое
fieldDependenciesисходный код public
fieldDependencies( Model $Model , array $map , array|boolean $fields array() )
Вычисление необходимых полей для извлечения требуемых связей для данной модели.
Параметры
-
Model$Model - Модель
- массив
$map - Карта отношений для данной модели
- массив/логический
$fieldsнеобязательно массив() - Если массив, поля для начальной загрузки, если false - используется $Model как основная модель
Возвращает
arrayПоля
resetBindingsисходный код public
resetBindings( Model $Model )
Постоянно восстанавливает исходные настройки связей данной модели, полезно для восстановления связей после использования 'reset' => false в вызове contain.
Параметры
-
Model$Model - Модель, для которой нужно сбросить связи
setupисходный код public
setup( Model $Model , array $settings array() )
Инициализация поведения для модели с указанными параметрами.
Доступные параметры:
- recursive: (логический, необязательно) установить в true, чтобы содержащий мог автоматически определить необходимый уровень рекурсии для получения указанных моделей и установить уровень рекурсии модели на этот уровень. Установка в false отключает эту функцию. ПО УМОЛЧАНИЮ: true
- notices: (логический, необязательно) выводит E_NOTICES для связей, упоминаемых в вызове containable, которые не являются допустимыми. ПО УМОЛЧАНИЮ: true
- autoFields: (логический, необязательно) автоматически добавляет необходимые поля для получения запрошенных связей. ПО УМОЛЧАНИЮ: true
Параметры
-
Model$Model - Модель, использующая поведение
- массив
$settingsнеобязательно массив() - Параметры для переопределения модели.
Переопределяет
ModelBehavior::setup() Наследованные методы из ModelBehavior
_addToWhitelistисходный код protected
_addToWhitelist( Model $model , string $field )
Если свойство $model's whitelist не пустое, $field будет добавлен в него. Примечание: этот метод следует использовать только в beforeValidate или beforeSave, чтобы убедиться, что он изменяет белый список только для текущей операции сохранения. Также убедитесь, что вы явно задаете значение поля, которое вы разрешаете.
Параметры
-
Model$model - Модель, использующая это поведение
- строка
$field - Поле, которое нужно добавить в белый список $model's
afterDeleteисходный код public
afterDelete( Model $model )
afterDelete вызывается после любого удаления, происходящего в присоединенной модели.
Параметры
-
Model$model - Модель, использующая это поведение
afterFindисходный код public
afterFind( Model $model , mixed $results , boolean $primary false )
Обратный вызов after find. Может использоваться для изменения любого результата, возвращаемого find.
Параметры
-
Model$model - Модель, использующая это поведение
- смешанное
$results - Результаты операции find
- логический
$primaryнеобязательно false - Является ли эта модель запрашиваемой напрямую (или она запрашивается как ассоциация)
Возвращает
mixedЗначение массива заменит значение $results - любое другое значение будет проигнорировано.
afterSaveисходный код public
afterSave( Model $model , boolean $created , array $options array() )
afterSave вызывается после сохранения модели.
Параметры
-
Model$model - Модель, использующая это поведение
- логический
$created - True, если это сохранение создало новую запись
- массив
$optionsнеобязательно массив() - Параметры, переданные из Model::save().
Возвращает
booleanbool
См. также
Model::save()afterValidateисходный код public
afterValidate( Model $model )
afterValidate вызывается сразу после проверки данных модели, вы можете использовать этот обратный вызов для выполнения любой очистки или подготовки данных, если это необходимо.
Параметры
-
Model$model - Модель, использующая это поведение
Возвращает
mixedFalse остановит прохождение события другим поведениям
beforeDeletesource public
beforeDelete( Model $model , boolean $cascade true )
Метод beforeDelete вызывается перед любым удалением прикрепленного модели, но после вызова метода beforeDelete модели. Возврат значения false из метода beforeDelete прервет удаление.
Параметры
-
Model$model - Модель, использующая этот бихевиор
- boolean
$cascadeнеобязательно true - Если true, записи, зависящие от этой записи, также будут удалены
Возвращаемое значение
mixedFalse, если операция должна быть прервана. Любой другой результат будет продолжен.
beforeSavesource public
beforeSave( Model $model , array $options array() )
Метод beforeSave вызывается перед сохранением модели. Возврат значения false из колбэка beforeSave прервет операцию сохранения.
Параметры
-
Model$model - Модель, использующая этот бихевиор
- array
$optionsнеобязательно array() - Опции, переданные из Model::save().
Возвращаемое значение
mixedFalse, если операция должна быть прервана. Любой другой результат будет продолжен.
См. также
Model::save()beforeValidatesource public
beforeValidate( Model $model , array $options array() )
Метод beforeValidate вызывается перед валидацией модели. Вы можете использовать этот колбэк для добавления правил валидации бихевиора в массив validate модели. Возврат значения false позволит заставить валидацию завершиться неудачей.
Параметры
-
Model$model - Модель, использующая этот бихевиор
- array
$optionsнеобязательно array() - Опции, переданные из Model::save().
Возвращаемое значение
mixedFalse или null прервут операцию. Любой другой результат будет продолжен.
См. также
Model::save()cleanupsource public
cleanup( Model $model )
Очистка любых инициализаций, выполненных этим бихевиором в модели. Вызывается при динамической отвязке бихевиора от модели с помощью Model::detach().
Параметры
-
Model$model - Модель, использующая этот бихевиор
См. также
BehaviorCollection::detach()onErrorsource public
onError( Model $model , string $error )
Обработчик ошибок источника данных
Параметры
-
Model$model - Модель, использующая этот бихевиор
- string
$error - Ошибка, сгенерированная в источнике данных
Методы, унаследованные от Object
_mergeVarssource protected
_mergeVars( array $properties , string $class , boolean $normalize true )
Объединяет свойство $property этого объекта со свойством в определении $class. Значение свойства этого класса будет объединено поверх значения $class.
Это обеспечивает некоторую "сухость" кода, предоставляемую CakePHP. Если вы хотите отключить это, переопределите этот метод как пустую функцию.
Параметры
- array
$properties - Название свойств для объединения.
- string
$class - Класс для объединения свойства с.
- boolean
$normalizeнеобязательно true - Установите в true, чтобы выполнить свойства через Hash::normalize() перед объединением.
_setsource protected
_set( array $properties array() )
Позволяет установить несколько свойств объекта в одной строке кода. Будут установлены только свойства, являющиеся частью объявления класса.
Параметры
- array
$propertiesнеобязательно array() - Ассоциативный массив, содержащий свойства и соответствующие значения.
_stopsource protected
_stop( integer|string $status 0 )
Останавливает выполнение текущего сценария. Оборачивает exit(), что облегчает тестирование.
Параметры
- integer|string
$statusнеобязательно 0 - см. http://php.net/exit для значений
dispatchMethodsource public
dispatchMethod( string $method , array $params array() )
Вызывает метод этого объекта с указанными параметрами. Предоставляет объектно-ориентированную оболочку для call_user_func_array
Параметры
- string
$method - Имя вызываемого метода
- array
$paramsнеобязательно array() - Список параметров для использования при вызове $method
Возвращаемое значение
mixedВозвращает результат вызова метода
logsource 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Успешность записи в журнал
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.
Параметры
- string|array
$url - Строка или массив, основанные на URL. В отличие от других массивов URL в CakePHP, этот URL не будет автоматически обрабатывать переданные и именованные аргументы в параметре $url.
- array
$extraнеобязательно array() - Если массив содержит ключ "return", он устанавливает AutoRender в true. Также может использоваться для отправки данных GET/POST и именованных/переданных аргументов.
Возвращаемое значение
mixedБулево значение true или false при успехе/неуспехе или содержимое отрисованного действия, если 'return' задан в $extra.
toStringsource public
toString( )
Преобразование объекта в строку. Каждый класс может переопределить этот метод по необходимости.
Возвращаемое значение
stringИмя этого класса
Краткое описание свойств
Свойства, унаследованные от ModelBehavior
$mapMethodssource
public array
Позволяет сопоставлять регулярные выражения, совместимые с preg, с открытыми или закрытыми методами в этом классе, где ключ массива — регулярное выражение, разделенное символом «/», а значение — метод класса. Аналогично функциональности магических методов findBy* / findAllBy*.
array() $settingssource
public array
Содержит параметры конфигурации для использования с отдельными объектами моделей. Это используется, потому что если несколько моделей используют этот класс поведения, каждая будет использовать тот же экземпляр объекта. Индивидуальные настройки моделей должны храниться в ассоциативном массиве, ключом которого является имя модели.
См. также
Model::$aliasarray()
© 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-ContainableBehavior.html