Класс Controller
Класс контроллера приложения для организации бизнес-логики. Предоставляет базовые функции, такие как отображение представлений внутри макетов, автоматическая доступность моделей, перенаправление, обратные вызовы и многое другое.
Контроллеры должны предоставлять ряд методов «действия». Это публичные методы контроллера, не имеющие префикса «_» и не являющиеся частью Controller. Каждое действие служит конечной точкой для выполнения определенного действия с ресурсом или набором ресурсов. Например: добавление или редактирование нового объекта или вывод списка объектов.
Вы можете получить доступ к параметрам запроса, используя $this->request. Объект запроса содержит все POST, GET и FILES, которые были частью запроса.
После выполнения необходимых действий контроллеры отвечают за создание ответа. Обычно это представление, сгенерированное из вида, или, возможно, перенаправление на другое действие контроллера. В любом случае $this->response позволяет манипулировать всеми аспектами ответа.
Контроллеры создаются диспетчером на основе параметров запроса и маршрутизации. По умолчанию контроллеры и действия используют стандартные имена. Например /posts/index сопоставляется с PostsController::index(). Вы можете переопределить URL-адреса с помощью Router::connect().
- CakeObject
-
Controller реализует CakeEventListener
Ссылка: https://book.cakephp.org/2.0/en/controllers.html
Авторские права: Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org)
Лицензия: MIT License
Расположение: Cake/Controller/Controller.php
Краткое описание свойств
- Экземпляр ComponentCollection, используемый для обработки обратных вызовов.
$Componentspublic -
$ViewpublicЭкземпляр представления, созданного во время рендеринга. Будет установлен только после вызова Controller::render().
-
$_eventManagerprotectedЭкземпляр CakeEventManager, используемый этим контроллером для отправки внутренних событий.
-
$_mergeParentprotectedstringИмя класса родительского класса, который вы хотите объединить. Обычно это AppController, но вы можете объединить переменные с другим родительским классом.
-
$_responseClassprotectedИмя класса для создания объекта ответа.string -
$autoLayoutpublicУстанавливается в true для автоматического рендеринга макета вокруг представлений.boolean -
$autoRenderpublicbooleanУстанавливается в true для автоматического рендеринга представления после логики действия.
-
$cacheActionpublicmixedИспользуется для определения методов контроллера, которые будут кэшироваться. Для кэширования отдельного действия значение устанавливается в массив, содержащий ключи, соответствующие именам действий, и значения, обозначающие время истечения срока действия кэша (в секундах).
-
$componentspublicarrayМассив, содержащий имена компонентов, используемых этим контроллером. Имена компонентов не должны содержать часть «Component» имени класса.
-
$extpublicРасширение файла шаблонов представления. По умолчанию соответствует общепринятому CakePHP «.ctp».string -
$helperspublicmixedМассив, содержащий имена хелперов, используемых этим контроллером. Элементы массива не должны содержать часть «Helper» имени класса.
-
$layoutpublicstringИмя файла макета, в котором будет отображаться представление. Указанное имя — имя файла макета в /app/View/Layouts без расширения .ctp.
-
$layoutPathpublicИмя подпапки макетов, содержащей макеты для этого контроллера.string -
$methodspublicarrayСодержит текущие методы контроллера. Это список всех методов, доступных через URL. Изменение этого массива позволит изменить доступные методы.
-
$modelClasspublicstringОсновное имя класса модели контроллера, версия, приведенная к единственному числительному, имени свойства контроллера $name.
-
$modelKeypublicКлючевое имя модели контроллера, подчёркнутая версия свойства контроллера $modelClass.string -
$namepublicНазвание этого контроллера. Имена контроллеров множественные, названные по модели, с которой они работают.string -
$passedArgspublicСодержит все переданные и именованные параметры.mixed -
$pluginpublicАвтоматически устанавливается в имя плагина.string -
$requestpublicЭкземпляр объекта CakeRequest, содержащего информацию о текущем запросе. Этот объект содержит всю информацию о запросе и несколько методов для чтения дополнительной информации о запросе.
- Экземпляр объекта CakeResponse, содержащего информацию о предстоящем ответе
$responsepublic -
$scaffoldpublicТриггер Scaffoldingmixed -
$usespublicМассив, содержащий имена классов моделей, используемых этим контроллером.mixed -
$validationErrorspublicСодержит любые ошибки валидации, полученные при последнем вызове метода validateErrors().array -
$viewpublicstringИмя файла представления для рендеринга. Указанное имя — имя файла в /app/View/
без расширения .ctp. -
$viewClasspublicИмя класса представления, которому этот контроллер отправляет вывод.string -
$viewPathpublicИмя подпапки представлений, содержащей представления для этого контроллера.string -
$viewVarspublicСодержит переменные, которые передаются представлению.array
Краткое описание магических свойств
-
$Aclpublic -
$Authpublic -
$Cookiepublic -
$Emailpublic -
$Flashpublic -
$Paginatorpublic -
$RequestHandlerpublic -
$Securitypublic -
$Sessionpublic
Краткое описание методов
- __construct() publicКонструктор.
- __get() public
Обеспечивает обратную совместимость доступа к свойствам объекта запроса. Также предоставляет псевдоним params.
- __isset() public
Обеспечивает обратную совместимость для предотвращения проблем с пустыми и isset свойствами псевдонима. Лениво загружает модели с помощью метода loadModel(), если объявлены в $uses
- __set() publicОбеспечивает обратную совместимость доступа для установки значений в объект запроса.
- _afterScaffoldSave() protectedПсевдоним для afterScaffoldSave()
- _afterScaffoldSaveError() protectedПсевдоним для afterScaffoldSaveError()
- _beforeScaffold() protectedПсевдоним для beforeScaffold()
- _getScaffold() protectedВозвращает объект эшафот для использования в динамически сгенерированных контроллерах.
- _getViewObject() protectedСоздаёт экземпляр класса представления на основе свойства контроллера
- _isPrivateAction() protected
Проверяет, помечен ли действие запроса как частное, с подчеркиванием, или если запрос пытается напрямую получить доступ к префиксу действия.
- _mergeControllerVars() protected
Объединяет компоненты, помощники и переменные uses из Controller::$_mergeParent и PluginAppController.
- _mergeUses() protectedВспомогательный метод для объединения свойства $uses.
- _parseBeforeRedirect() protectedПарсит beforeRedirect ответ.
- _scaffoldError() protectedПсевдоним для scaffoldError()
- afterFilter() publicВызывается после выполнения и отрисовки действия контроллера.
- afterScaffoldSave() publicЭтот метод следует переопределять в дочерних классах.
- afterScaffoldSaveError() publicЭтот метод следует переопределять в дочерних классах.
- beforeFilter() public
Вызывается перед действием контроллера. Вы можете использовать этот метод для настройки и настройки компонентов или выполнения логики, которая должна выполняться перед каждым действием контроллера.
- beforeRedirect() public
Метод beforeRedirect вызывается, когда вызывается метод redirect контроллера, но перед любыми дальнейшими действиями.
- beforeRender() public
Вызывается после выполнения действия контроллера, но перед отрисовкой представления. Вы можете использовать этот метод для выполнения логики или установки переменных представления, которые требуются при каждом запросе.
- beforeScaffold() publicЭтот метод следует переопределять в дочерних классах.
- constructClasses() public
Загружает классы модели на основе свойства uses, см. Controller::loadModel(); для получения дополнительной информации. Загружает компоненты и готовит их к инициализации.
- disableCache() publicЗапрещает кеширование результатов текущего запроса в браузере пользователя.
- flash() public
Отображает сообщение пользователю на $pause секунд, затем перенаправляет на $url. Использует flash.ctp в качестве шаблона по умолчанию для сообщения. Не работает, если текущий уровень отладки выше 0.
- getEventManager() public
Возвращает экземпляр менеджера CakeEventManager, обрабатывающий любые обратные вызовы. Вы можете использовать этот экземпляр для регистрации новых слушателей или обратных вызовов событий контроллера, или создавать собственные события и запускать их по мере необходимости.
- header() publicУдобный и объектный метод-обёртка для CakeResponse::header().
- httpCodes() publicЗапрашивает и устанавливает допустимые коды и сообщения HTTP-ответа.
- implementedEvents() public
Возвращает список всех событий, которые будут срабатывать в контроллере в течение его жизненного цикла. Вы можете переопределить эту функцию, чтобы добавить свои собственные обратные вызовы слушателей.
- invokeAction() public
Отправляет действие контроллера. Проверяет, существует ли действие и не является ли оно частным.
- loadModel() public
Загружает и создаёт необходимые модели для этого контроллера. Если модель не существует, будет выброшено исключение об отсутствии таблицы базы данных, так как CakePHP на данный момент генерирует динамические модели.
- paginate() publicОбрабатывает автоматическую постраничную навигацию записей модели.
- postConditions() publicПреобразует данные формы POST в массив условий модели, пригодный для использования в вызове Model::find().
- redirect() public
Перенаправляет на указанный $url после отключения $this->autoRender. Выполнение скрипта приостанавливается после перенаправления.
- referer() publicВозвращает URL, сославшись на этот запрос.
- render() publicСоздаёт правильный класс представления, передаёт ему данные и использует его для отрисовки вывода представления.
- scaffoldError() public
Этот метод следует переопределять в дочерних классах. Если нет, будет отображено сообщение об ошибке эшафот. Метод ДОЛЖЕН возвращать true в дочерних классах
- set() publicСохраняет переменную для использования в шаблоне представления.
- setAction() publicВнутренне перенаправляет одно действие на другое. Не выполняет другой HTTP-запрос в отличие от Controller::redirect()
- setRequest() public
Устанавливает объекты запроса и настраивает ряд свойств контроллера на основе содержимого запроса. Свойства, которые устанавливаются,
- shutdownProcess() public
Выполняет различные процессы завершения для этого контроллера. Вызывает компоненты и обратные вызовы контроллера в правильном порядке.
- startupProcess() public
Выполняет начальный процесс для этого контроллера. Вызывает компоненты и обратные вызовы контроллера в правильном порядке.
- validate() publicВозвращает количество ошибок в отправленной форме.
- validateErrors() public
Проверяет модели, переданные в параметрах. Принимает список моделей в качестве аргумента. Пример:
Подробное описание метода
__construct()source public
__construct( CakeRequest $request null , CakeResponse $response null )
Конструктор.
Параметры
-
CakeRequest$requestoptional null Объект запроса для данного контроллера. Может быть null для тестирования, но ожидайте, что функции, использующие параметры запроса, не будут работать.
-
CakeResponse$responseoptional null - Объект ответа для данного контроллера.
Переопределяет
CakeObject::__construct() __get()source public
__get( string $name )
Обеспечивает обратную совместимость доступа к свойствам объекта запроса. Также предоставляет псевдоним params.
Параметры
- string
$name - Имя запрашиваемого значения
Возвращает
mixedЗапрашиваемое значение для допустимых переменных/псевдонимов, в противном случае null
__isset()source public
__isset( string $name )
Обеспечивает обратную совместимость, чтобы избежать проблем с пустыми и isset-алиасами свойств. Лениво загружает модели, используя метод loadModel(), если они объявлены в $uses
Параметры
- строка
$name - Имя свойства для проверки.
Возвращает
булево значение__set()source public
__set( string $name , mixed $value )
Обеспечивает обратную совместимость для установки значений в объект запроса.
Параметры
- строка
$name - Имя свойства для установки.
- смешанный тип
$value - Значение для установки.
_afterScaffoldSave()source protected
_afterScaffoldSave( string $method )
Псевдоним для afterScaffoldSave()
Устарело
3.0.0 Будет удалено в 3.0.Параметры
- строка
$method - Имя метода.
Возвращает
булево значениеСм. также
Controller::afterScaffoldSave()_afterScaffoldSaveError()source protected
_afterScaffoldSaveError( string $method )
Псевдоним для afterScaffoldSaveError()
Устарело
3.0.0 Будет удалено в 3.0.Параметры
- строка
$method - Имя метода.
Возвращает
булево значениеСм. также
Controller::afterScaffoldSaveError()_beforeScaffold()source protected
_beforeScaffold( string $method )
Псевдоним для beforeScaffold()
Устарело
3.0.0 Будет удалено в 3.0.Параметры
- строка
$method - Имя метода.
Возвращает
булево значениеСм. также
Controller::beforeScaffold()_getScaffold()source protected
_getScaffold( CakeRequest $request )
Возвращает объект scaffolding для использования в динамически создаваемых контроллерах.
Параметры
-
CakeRequest$request - Экземпляр запроса.
Возвращает
Scaffold_getViewObject()source protected
_getViewObject( )
Создаёт экземпляр класса представления на основе свойства контроллера
Возвращает
View_isPrivateAction()source protected
_isPrivateAction( ReflectionMethod $method , CakeRequest $request )
Проверяет, помечен ли действие запроса как private, имеет ли оно префикс нижнего подчеркивания или запрос пытается напрямую получить доступ к действию с префиксом.
Параметры
- ReflectionMethod
$method - Метод, который нужно вызвать.
-
CakeRequest$request - Запрос для проверки.
Возвращает
булево значение_mergeControllerVars()source protected
_mergeControllerVars( )
Объединяет переменные компонентов, helpers и uses из Controller::$_mergeParent и PluginAppController.
_mergeUses()source protected
_mergeUses( array $merge )
Вспомогательный метод для объединения свойства $uses.
Объединяет элементы, которые еще не находятся в $this->uses, в $this->uses.
Параметры
- массив
$merge - Данные для объединения.
_parseBeforeRedirect()source protected
_parseBeforeRedirect( mixed $response , string|array $url , integer $status , boolean $exit )
Парсит ответ beforeRedirect
Параметры
- смешанный тип
$response - Ответ от обратного вызова beforeRedirect
- строка или массив
$url - То же значение, что и у beforeRedirect
- целое число
$status - То же значение, что и у beforeRedirect
- булево значение
$exit - То же значение, что и у beforeRedirect
Возвращает
массивМассив с ключами url, status и exit
_scaffoldError()source protected
_scaffoldError( string $method )
Псевдоним для scaffoldError()
Устарело
3.0.0 Будет удалено в 3.0.Параметры
- строка
$method - Имя метода.
Возвращает
булево значениеСм. также
Controller::scaffoldError()afterFilter()source public
afterFilter( )
Вызывается после выполнения и отрисовки действия контроллера.
Ссылка
https://book.cakephp.org/2.0/ru/controllers.html#request-life-cycle-callbacksafterScaffoldSave()source public
afterScaffoldSave( string $method )
Этот метод должен быть переопределён в дочерних классах.
Параметры
- строка
$method - Имя метода, вызываемого либо edit, либо update.
Возвращает
булево значениеУспех
Ссылка
https://book.cakephp.org/2.0/ru/controllers.html#callbacksafterScaffoldSaveError()source public
afterScaffoldSaveError( string $method )
Этот метод должен быть переопределён в дочерних классах.
Параметры
- строка
$method - Имя метода, вызываемого либо edit, либо update.
Возвращает
булево значениеУспех
Ссылка
https://book.cakephp.org/2.0/ru/controllers.html#callbacksbeforeFilter()source public
beforeFilter( )
Вызывается перед действием контроллера. Вы можете использовать этот метод для настройки и персонализации компонентов или для выполнения логики, которая должна выполняться перед каждым действием контроллера.
Ссылка
https://book.cakephp.org/2.0/ru/controllers.html#request-life-cycle-callbacksbeforeRedirect()source public
beforeRedirect( string|array $url , integer $status null , boolean $exit true )
Метод beforeRedirect вызывается, когда вызывается метод redirect контроллера, но до дальнейших действий.
Если этот метод возвращает false, контроллер не будет продолжать перенаправлять запрос. Переменные $url, $status и $exit имеют то же значение, что и для метода контроллера. Вы также можете вернуть строку, которая будет интерпретирована как URL для перенаправления, или вернуть ассоциативный массив с ключом 'url' и необязательно 'status' и 'exit'.
Параметры
- строка или массив
$url Строка или массив, представляющий URL для перехода на другую страницу внутри приложения или абсолютный URL
- целое число
$statusoptional null - Необязательный HTTP-код состояния (например: 404)
- булево значение
$exitoptional true - Если true, вызов exit() будет осуществлён после перенаправления
Возвращает
смешанный типfalse для остановки перенаправления, строка с новым URL для перенаправления или массив с ключами url, status и exit для использования методом redirect.
Ссылка
https://book.cakephp.org/2.0/ru/controllers.html#request-life-cycle-callbacksbeforeRender()source public
beforeRender( )
Вызывается после выполнения действия контроллера, но перед отрисовкой представления. Вы можете использовать этот метод для выполнения логики или установки переменных представления, необходимых для каждого запроса.
Ссылка
https://book.cakephp.org/2.0/ru/controllers.html#request-life-cycle-callbacksbeforeScaffold()source public
beforeScaffold( string $method )
Этот метод должен быть переопределён в дочерних классах.
Параметры
- строка
$method - имя вызываемого метода, например, index, edit и т.д.
Возвращает
booleanУспех
Ссылка
https://book.cakephp.org/2.0/ru/controllers.html#callbacksconstructClasses()source public
constructClasses( )
Загружает классы моделей на основе свойства uses, см. Controller::loadModel(); для получения дополнительной информации. Загружает компоненты и готовит их к инициализации.
Возвращает
mixedtrue, если модели найдены и экземпляр создан.
Выбрасывает
MissingModelExceptionСм. также
Controller::loadModel()Ссылка
https://book.cakephp.org/2.0/ru/controllers.html#Controller::constructClassesdisableCache()source public
disableCache( )
Запрещает браузеру кешировать результаты текущего запроса.
Устарело
3.0.0 Будет удалено в 3.0. Используйте CakeResponse::disableCache().Ссылка
https://book.cakephp.org/2.0/ru/controllers.html#Controller::disableCacheflash()source public
flash( string $message , string|array $url , integer $pause 1 , string $layout 'flash' )
Отображает сообщение пользователю на $pause секунд, затем перенаправляет на $url. Использует flash.ctp в качестве шаблона сообщения по умолчанию. Не работает, если текущий уровень отладки выше 0.
Устарело
3.0.0 Будет удалено в 3.0. Используйте Flash::set() с версией 2.7+ или Session::setFlash() до версии 2.7.Параметры
- строка
$message - Сообщение для отображения пользователю
- строка/массив
$url - Относительный URL для перенаправления после истечения времени (строка или массив)
- целое число
$pauseопционально 1 - Время отображения сообщения
- строка
$layoutопционально 'flash' - Шаблон, который необходимо использовать, по умолчанию 'flash'
Ссылка
https://book.cakephp.org/2.0/ru/controllers.html#Controller::flashgetEventManager()source public
getEventManager( )
Возвращает экземпляр менеджера CakeEventManager, который обрабатывает любые колбэки. Вы можете использовать этот экземпляр для регистрации новых обработчиков событий или колбэков для событий контроллера или создания собственных событий и их запуска по желанию.
Возвращает
CakeEventManagerheader()source public
header( string $status )
Удобный и объектный метод-обёртку для CakeResponse::header().
Устарело
3.0.0 Будет удалено в 3.0. Используйте CakeResponse::header().Параметры
- строка
$status - Сообщение заголовка, которое устанавливается.
httpCodes()source public
httpCodes( integer|array $code null )
Запрашивает и устанавливает допустимые коды и сообщения HTTP-ответов.
Устарело
3.0.0 С версии 2.4. Будет удалено в 3.0. Используйте CakeResponse::httpCodes().Параметры
- целое число/массив
$codeопционально null -
Если $code – целое число, возвращается соответствующий код/сообщение, если существует; null, если не существует. Если $code – массив, ключи 'code' и 'message' каждого вложенного массива добавляются к стандартным HTTP-кодам. Пример:
httpCodes(404); // returns array(404 => 'Not Found') httpCodes(array( 701 => 'Unicorn Moved', 800 => 'Unexpected Minotaur' )); // sets these new values, and returns true
Возвращает
массивАссоциативный массив HTTP-кодов в качестве ключей и строк сообщений в качестве значений; null, если заданный $code не существует.
implementedEvents()source public
implementedEvents( )
Возвращает список всех событий, которые будут срабатывать в контроллере в течение его жизненного цикла. Вы можете переопределить эту функцию, чтобы добавить свои обработчики событий.
Возвращает
массивРеализация
CakeEventListener::implementedEvents() invokeAction()source public
invokeAction( CakeRequest $request )
Выполняет действие контроллера. Проверяет, существует ли действие и оно не является приватным.
Параметры
-
CakeRequest$request - Экземпляр запроса.
Возвращает
mixedРезультат ответа.
Выбрасывает
PrivateActionExceptionПри действиях, которые не являются публичными или начинаются с _
MissingActionExceptionКогда действия не определены и scaffolding не включен.
loadModel()source public
loadModel( string $modelClass null , integer|string $id null )
Загружает и создаёт модели, необходимые для этого контроллера. Если модель не существует, будет выброшено исключение об отсутствии таблицы базы данных, так как CakePHP генерирует динамические модели временно.
Параметры
- строка
$modelClassопционально null - Имя класса модели для загрузки
- целое число/строка
$idопционально null - Изначальный ID, которым должен обладать экземпляр класса модели
Возвращает
booleanTrue, если модель найдена
Выбрасывает
MissingModelExceptionесли класс модели не может быть найден.
paginate()source public
paginate( Model|string $object null , string|array $scope array() , array $whitelist array() )
Обрабатывает автоматическую постраничную навигацию записей модели.
Параметры
-
Model/строка$objectопционально null - Модель для постраничной навигации (например, экземпляр модели, или 'Модель', или 'Модель.ВложеннаяМодель')
- строка/массив
$scopeопционально array() - Условие для постраничной навигации
- массив
$whitelistопционально array() - Список разрешенных опций для постраничной навигации
Возвращает
массивРезультаты запроса модели
Ссылка
https://book.cakephp.org/2.0/ru/controllers.html#Controller::paginatepostConditions()source public
postConditions( array $data array() , string|array $op null , string $bool 'AND' , boolean $exclusive false )
Преобразует данные POST'ed формы в массив условий модели, подходящий для вызова Model::find().
Устарело
3.0.0 Будет удалено в 3.0.Параметры
- массив
$dataопционально array() - POST'ed данные, организованные по модели и полю
- строка/массив
$opопционально null Строка, содержащая оператор SQL сравнения, или массив, сопоставляющий операторы полям.
- строка
$boolопционально 'AND' - Оператор SQL булевой логики: AND, OR, XOR и т.д.
- boolean
$exclusiveопционально false Если true, и $op – массив, поля, не включенные в $op, не будут включены в возвращаемые условия
Возвращает
массив/nullМассив условий модели
redirect()source public
redirect( string|array $url , integer|array|null $status null , boolean $exit true )
Перенаправляет на заданный $url после отключения $this->autoRender. После перенаправления выполнение скрипта прерывается.
Параметры
- строка|массив
$url Строка или массив URL, указывающий на другое местоположение в приложении или абсолютный URL.
- целое число|массив|null
$statusнеобязательно null - Код HTTP-статуса (например: 301). По умолчанию 302, если передан null.
- булево
$exitнеобязательно true - Если true, после перенаправления будет вызван exit()
Возвращает
CakeResponse|nullВызывает
Controller.beforeRedirect $this, array($url, $status, $exit)Ссылка
https://book.cakephp.org/2.0/ru/controllers.html#Controller::redirectreferer()source public
referer( string $default null , boolean $local false )
Возвращает URL, ссылающийся на текущий запрос.
Параметры
- строка
$defaultнеобязательно null - URL по умолчанию, используемый, если HTTP_REFERER не может быть прочитан из заголовков
- булево
$localнеобязательно false - Если true, ссылки на URL ограничиваются локальным сервером
Возвращает
строкаURL ссылки
Ссылка
https://book.cakephp.org/2.0/ru/controllers.html#Controller::refererrender()source public
render( string $view null , string $layout null )
Создает правильный класс представления, передает ему данные и использует его для рендеринга вывода представления.
Параметры
- строка
$viewнеобязательно null - Представление для рендеринга
- строка
$layoutнеобязательно null - Макет для использования
Возвращает
CakeResponseОбъект ответа, содержащий отрендеренное представление.
Вызывает
Controller.beforeRender $thisСсылка
https://book.cakephp.org/2.0/ru/controllers.html#Controller::renderscaffoldError()source public
scaffoldError( string $method )
Этот метод должен быть переопределен в дочерних классах. В противном случае он отобразит ошибку шаблона. Метод ДОЛЖЕН возвращать true в дочерних классах
Параметры
- строка
$method - имя вызываемого метода, например, index, edit и т. д.
Возвращает
булевоУспех
Ссылка
https://book.cakephp.org/2.0/ru/controllers.html#callbacksset()source public
set( string|array $one , string|array $two null )
Сохраняет переменную для использования внутри шаблона представления.
Параметры
- строка|массив
$one - Строка или массив данных.
- строка|массив
$twoнеобязательно null Значение в случае, если $one является строкой (которая затем работает как ключ). Не используется, если $one является ассоциативным массивом, в противном случае используется как значения для ключей $one.
Ссылка
https://book.cakephp.org/2.0/ru/controllers.html#interacting-with-viewssetAction()source public
setAction( string $action )
Внутренне перенаправляет один действие на другое. Не выполняет другой HTTP-запрос в отличие от Controller::redirect()
Примеры:
setAction('another_action');
setAction('action_with_parameters', $parameter1); Параметры
- строка
$action Новое действие, на которое производится «перенаправление». Любые другие параметры, переданные в этот метод, будут переданы как параметры новому действию.
Возвращает
смешанныйВозвращает возвращаемое значение вызываемого действия
setRequest()source public
setRequest( CakeRequest $request )
Устанавливает объекты запроса и настраивает ряд свойств контроллера на основе содержимого запроса. Устанавливаемые свойства:
- $this->request - В $request параметр
- $this->plugin - В $request->params['plugin']
- $this->view - В $request->params['action']
- $this->autoLayout - В false, если $request->params['bare']; задан.
- $this->autoRender - В false, если $request->params['return'] == 1
- $this->passedArgs - Объединенные результаты params['named'] и params['pass]
Параметры
-
CakeRequest$request - Экземпляр запроса.
shutdownProcess()source public
shutdownProcess( )
Выполняет различные процессы завершения работы для данного контроллера. Вызывает компоненты и обратные вызовы контроллера в правильном порядке.
- вызывает обратный вызов компонента
shutdown. - вызывает метод контроллера
afterFilter.
Вызывает
Controller.shutdown $thisstartupProcess()source public
startupProcess( )
Выполняет процесс запуска для данного контроллера. Вызывает компоненты и обратные вызовы контроллера в правильном порядке.
- Инициализирует компоненты, вызывая их обратный вызов
initialize - Вызывает контроллер
beforeFilter. - вызывает методы компонента
startup.
Вызывает
Controller.initialize $thisController.startup $this
validate()source public
validate( )
Возвращает количество ошибок в отправленной форме.
Устаревший
3.0.0 Этот метод будет удален в версии 3.0Возвращает
целое числоКоличество ошибок
validateErrors()source public
validateErrors( )
Проверяет модели, переданные в качестве параметров. Принимает список моделей в качестве аргумента. Пример:
$errors = $this->validateErrors($this->Article, $this->User);
Устаревший
3.0.0 Этот метод будет удален в версии 3.0Возвращает
массивОшибки проверки или false, если ошибок нет
Методы, унаследованные от CakeObject
_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
Параметры
- 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 и именованных/передаваемых аргументов.
Возвращает
mixedBoolean true или false при успехе/неудаче, или содержимое отрендеренного действия, если в $extra задан ключ 'return'.
toString()source public
toString( )
Преобразование CakeObject в строку. Каждый класс может переопределять этот метод по необходимости.
Возвращает
stringИмя этого класса
Подробности свойств
$Componentssource
public ComponentCollection
Экземпляр ComponentCollection, используемый для обработки обратных вызовов.
null
$Viewsource
public View
Экземпляр View, созданный во время рендеринга. Он не будет установлен до вызова Controller::render().
$_eventManagersource
protected CakeEventManager
Экземпляр CakeEventManager, используемый этим контроллером для диспетчеризации внутренних событий.
null
$_mergeParentsource
protected string
Имя класса родительского класса, с которым вы хотите произвести слияние. Обычно это AppController, но вы можете захотеть объединить переменные с другим родительским классом.
'AppController'
$_responseClasssource
protected string
Имя класса, используемого для создания объекта ответа.
'CakeResponse'
$autoLayoutsource
public boolean
Установите в значение true, чтобы автоматически рендерить макет вокруг представлений.
true
$autoRendersource
public boolean
Установите в значение true, чтобы автоматически рендерить представление после логики действия.
true
$cacheActionsource
public mixed
Используется для определения методов контроллера, которые будут кэшированы. Чтобы кэшировать отдельное действие, значение устанавливается в массив, содержащий ключи, соответствующие именам действий, и значения, обозначающие время истечения кэша (в секундах).
Пример:
public $cacheAction = array(
'view/23/' => 21600,
'recalled/' => 86400
); $cacheAction также может быть установлен в строку, совместимую с strtotime(). Это помечает все действия в контроллере для кэширования представления.
Ссылка
https://book.cakephp.org/2.0/ru/core-libraries/helpers/cache.html#additional-configuration-optionsfalse
$componentssource
public array
Массив, содержащий имена компонентов, используемых этим контроллером. Имена компонентов не должны содержать часть "Component" имени класса.
Пример: public $components = array('Session', 'RequestHandler', 'Acl');
Ссылка
https://book.cakephp.org/2.0/ru/controllers/components.htmlarray('Session', 'Flash') $extsource
public string
Расширение файла шаблонов представления. По умолчанию — стандартное для CakePHP ".ctp".
'.ctp'
$helperssource
public mixed
Массив, содержащий имена используемых в контроллере helpers. Элементы массива не должны содержать часть "Helper" имени класса.
Пример: public $helpers = array('Html', 'Js', 'Time', 'Ajax');
Ссылка
https://book.cakephp.org/2.0/ru/controllers.html#components-helpers-and-usesarray()
$layoutsource
public string
Имя файла макета, в котором будет рендериться представление. Указанное имя — это имя файла макета в /app/View/Layouts без расширения .ctp.
'default'
$methodssource
public array
Содержит текущие методы контроллера. Это список всех методов, доступных через URL. Изменение этого массива позволит изменить доступные методы.
array()
$modelClasssource
public string
Основное имя класса модели контроллера, получившееся с использованием Inflector::singularize() от свойства $name контроллера.
Пример: Для контроллера с именем 'Comments', modelClass будет 'Comment'
null
$modelKeysource
public string
Имя ключа модели контроллера, версия с нижними подчеркиваниями свойства $modelClass контроллера.
Пример: для контроллера с именем 'ArticleComments', modelKey будет 'article_comment'
null
$namesource
public string
Имя этого контроллера. Имена контроллеров во множественном числе, названные в соответствии с моделью, которую они обрабатывают.
Ссылка
https://book.cakephp.org/2.0/ru/controllers.html#controller-attributesnull
$requestsource
public CakeRequest
Экземпляр объекта CakeRequest, содержащего информацию о текущем запросе. Этот объект содержит всю информацию о запросе и несколько методов для чтения дополнительной информации о запросе.
Ссылка
https://book.cakephp.org/2.0/ru/controllers/request-response.html#cakerequest$responsesource
public CakeResponse
Экземпляр объекта CakeResponse, содержащего информацию о предстоящем ответе.
Ссылка
https://book.cakephp.org/2.0/ru/controllers/request-response.html#cakeresponse$scaffoldsource
public mixed
Вызывает Scaffolding
Ссылка
https://book.cakephp.org/2.0/ru/controllers/scaffolding.htmlfalse
$usessource
public mixed
Массив, содержащий имена классов моделей, используемых этим контроллером.
Пример: public $uses = array('Product', 'Post', 'Comment');
Может быть установлен на несколько значений для выражения различных вариантов:
-
trueИспользование стандартного инфлективного имени модели. -
array()Использование только моделей, определенных в родительском классе. -
falseНе использовать модели вообще, не объединять с родительским классом. -
array('Post', 'Comment')Использование только моделей Post и Comment. Модели также будут объединены с родительским классом.
Значение по умолчанию true.
Ссылка
https://book.cakephp.org/2.0/ru/controllers.html#components-helpers-and-usestrue
$validationErrorssource
public array
Хранит любые ошибки валидации, полученные после последнего вызова метода validateErrors().
null
$viewsource
public string
Имя файла представления для рендеринга. Указанное имя - имя файла в /app/View/<подпапка> без расширения .ctp.
null
$viewClasssource
public string
Имя класса представления, в который этот контроллер отправляет вывод.
'View'
$viewPathsource
public string
Имя подпапки представлений, содержащей представления для этого контроллера.
null
Подробное описание магических свойств
$Aclsource
public AclComponent
$Authsource
public AuthComponent
$Cookiesource
public CookieComponent
$Emailsource
public EmailComponent
$Flashsource
public FlashComponent
$Paginatorsource
public PaginatorComponent
$RequestHandlersource
public RequestHandlerComponent
$Securitysource
public SecurityComponent
$Sessionsource
public SessionComponent
© 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-Controller.html