Класс Controller
Класс-контроллер приложения для организации бизнес-логики. Предоставляет базовые функции, такие как вывод представлений внутри макетов, автоматическое доступность моделей, перенаправление, обратные вызовы и многое другое.
Контроллеры должны предоставлять ряд методов «действий». Это публичные методы контроллера, которые не унаследованы от Controller. Каждое действие служит конечной точкой для выполнения определенного действия над ресурсом или набором ресурсов. Например, добавление или редактирование нового объекта или вывод списка объектов.
Вы можете получить доступ к параметрам запроса, используя $this->request. Объект запроса содержит все POST, GET и FILES, которые были частью запроса.
После выполнения необходимого действия контроллеры отвечают за создание ответа. Это обычно происходит в виде сгенерированного View, или, возможно, перенаправления на другой URL. В любом случае $this->response позволяет вам управлять всеми аспектами ответа.
Контроллеры создаются Dispatcher на основе параметров запроса и маршрутизации. По умолчанию контроллеры и действия используют стандартные имена. Например, /posts/index сопоставляется с PostsController::index(). Вы можете переназначить URL-адреса, используя Router::connect() или RouterBuilder::connect().
Обратные вызовы жизненного цикла
CakePHP запускает ряд обратных вызовов жизненного цикла во время каждого запроса. Реализовав метод, вы можете получить связанные события. Доступные обратные вызовы:
-
beforeFilter(Event $event)Вызывается перед каждым действием. Это хорошее место для выполнения общей логики, которая применяется ко всем действиям. -
beforeRender(Event $event)Вызывается перед рендерингом представления. -
beforeRedirect(Event $event, $url, Response $response)Вызывается перед перенаправлением. -
afterFilter(Event $event)Вызывается после завершения каждого действия и после рендеринга представления.
- Cake\Controller\Controller реализует Cake\Event\EventListenerInterface, Cake\Event\EventDispatcherInterface использует Cake\Event\EventDispatcherTrait , Cake\ORM\Locator\LocatorAwareTrait , Cake\Log\LogTrait , Cake\Utility\MergeVariablesTrait , Cake\Datasource\ModelAwareTrait , Cake\Routing\RequestActionTrait , Cake\View\ViewVarsTrait
Непосредственные подклассы
Ссылка: https://book.cakephp.org/3.0/ru/controllers.html
Расположение: Controller/Controller.php
Краткое описание свойств
-
$ViewpublicЭкземпляр представления, созданного во время рендеринга. Не будет установлен до вызова Controller::render().
- Экземпляр ComponentRegistry, используемый для создания компонентов
$_componentsprotected -
$_responseClassprotectedИмя класса для создания объекта ответа.string -
$_validViewOptionsprotectedЭти свойства контроллера будут переданы от контроллера к представлению в качестве параметров.array -
$autoRenderprotectedbooleanУстанавливается в true для автоматического рендеринга представления после логики действия.
-
$componentspublicarrayМассив, содержащий имена компонентов, используемых этим контроллером. Имена компонентов не должны содержать часть "Component" имени класса.
-
$helperspublicarrayМассив, содержащий имена помощников, используемых этим контроллером. Элементы массива не должны содержать часть "Helper" имени класса.
-
$nameprotectedИмя этого контроллера. Имена контроллеров множественные, названные по модели, которую они обрабатывают.string -
$paginatepublicНастройки для постраничной навигации.array -
$passedArgspublicСодержит все переданные параметры.array -
$pluginprotectedАвтоматически устанавливается в имя плагина.string|null -
$requestpublicЭкземпляр объекта \Cake\Http\ServerRequest, содержащий информацию о текущем запросе. Этот объект содержит всю информацию о запросе и несколько методов для чтения дополнительной информации о запросе.
- Экземпляр объекта Response, содержащий информацию о предстоящем ответе
$responsepublic
Краткое описание магических свойств
-
$Authpublic -
$Cookiepublic -
$Csrfpublic -
$Flashpublic -
$Paginatorpublic -
$RequestHandlerpublic -
$Securitypublic
Краткое описание унаследованных магических свойств
Краткое описание унаследованных свойств
-
_eventClass,_eventManager_tableLocator_modelFactories,_modelType,modelClass_viewBuilder,viewClass,viewVars
Краткое описание методов
- __construct() publicКонструктор.
- __get() publicМагический аксессор для автозагрузки моделей.
- __set() publicМагический установщик для удалённых свойств.
- _loadComponents() protectedЗагружает определённые компоненты, используя фабрику компонентов.
- _mergeControllerVars() protected
Объединяет компоненты, переменные хелперов из родительских классов.
- _viewPath() protectedПолучить путь к представлению на основе имени контроллера и префикса запроса.
- afterFilter() publicВызывается после выполнения и отрисовки действия контроллера.
- beforeFilter() public
Вызывается перед действием контроллера. Вы можете использовать этот метод для конфигурации и настройки компонентов или выполнения логики, которая должна выполняться перед каждым действием контроллера.
- beforeRedirect() public
Метод beforeRedirect вызывается при вызове метода redirect контроллера, но перед любыми дальнейшими действиями.
- beforeRender() public
Вызывается после выполнения действия контроллера, но перед отрисовкой представления. Вы можете использовать этот метод для выполнения логики или задания переменных представления, которые необходимы при каждом запросе.
- components() publicПолучить реестр компонентов для этого контроллера.
- disableAutoRender() publicОтключить автоматическую отрисовку действия.
- enableAutoRender() publicВключить автоматическую отрисовку действия.
- getName() publicВозвращает имя контроллера.
- getPlugin() publicВозвращает имя плагина.
- getRequest() publicПолучает экземпляр запроса.
- getResponse() publicПолучает экземпляр ответа.
- implementedEvents() public
Возвращает список всех событий, которые будут срабатывать в контроллере в течение его жизненного цикла. Вы можете переопределить эту функцию, чтобы добавить свои собственные обратные вызовы-слушатели
- initialize() publicМетод инициализации.
- invokeAction() public
Диспетчирует действие контроллера. Проверяет, что действие существует и не является закрытым.
- isAction() publicМетод для проверки того, что действие доступно по URL.
- isAutoRenderEnabled() publicВозвращает true, если действие должно быть автоматически отрисовано.
- loadComponent() publicДобавить компонент в реестр контроллера.
- paginate() publicОбрабатывает пагинацию записей в объектах Table.
- redirect() publicПеренаправляет на заданный $url после отключения $this->autoRender.
- referer() publicВозвращает URL, с которого был сделан текущий запрос.
- render() publicСоздаёт экземпляр соответствующего класса представления, передаёт ему данные и использует его для отрисовки вывода представления.
- setAction() publicВнутренне перенаправляет одно действие на другое. Не выполняет другой HTTP-запрос в отличие от Controller::redirect().
- setName() publicУстанавливает имя контроллера.
- setPlugin() publicУстанавливает имя плагина.
- setRequest() public
Устанавливает объекты запроса и настраивает ряд свойств контроллера на основе содержимого запроса. Контроллер действует как прокси для определённых переменных представления, которые также должны быть обновлены здесь. Свойства, которые устанавливаются:
- setResponse() publicУстанавливает экземпляр ответа.
- shutdownProcess() public
Выполнить различные процессы завершения работы для этого контроллера. Вызвать обратные вызовы компонентов и контроллера в правильном порядке.
- startupProcess() public
Выполнить процесс запуска для этого контроллера. Вызвать обратные вызовы компонентов и контроллера в правильном порядке.
Подробное описание методов
__construct()source public
__construct( Cake\Http\ServerRequest $request = null , Cake\Http\Response $response = null , string|null $name = null , Cake\Event\EventManager|null $eventManager = null , Cake\Controller\ComponentRegistry|null $components = null )
Конструктор.
Устанавливает ряд свойств на основе соглашений, если они пусты. Чтобы переопределить соглашения, используемые CakePHP, вы можете определить свойства в объявлении вашего класса.
Параметры
-
Cake\Http\ServerRequest$requestoptional null Объект запроса для этого контроллера. Может быть null для тестирования, но ожидайте, что функции, использующие параметры запроса, не будут работать.
-
Cake\Http\Response$responseoptional null - Объект ответа для этого контроллера.
- string|null
$nameoptional null - Переопределить имя, полезно при тестировании с использованием эмуляций.
-
Cake\Event\EventManager|null$eventManageroptional null - Менеджер событий. По умолчанию - новый экземпляр.
-
Cake\Controller\ComponentRegistry|null$componentsoptional null - Реестр компонентов. По умолчанию - новый экземпляр.
__get()source public
__get( string $name )
Магический аксессор для автозагрузки моделей.
Параметры
- string
$name - Имя свойства
Возвращает
boolean|objectЭкземпляр модели или false
__set()source public
__set( string $name , mixed $value )
Магический установщик для удалённых свойств.
Параметры
- string
$name - Имя свойства.
- mixed
$value - Значение для установки.
_loadComponents()source protected
_loadComponents( )
Загружает определённые компоненты, используя фабрику компонентов.
_mergeControllerVars()source protected
_mergeControllerVars( )
Объединяет компоненты, переменные хелперов из родительских классов.
_viewPath()source protected
_viewPath( )
Получить путь к представлению на основе имени контроллера и префикса запроса.
Возвращает
stringafterFilter()source public
afterFilter( Cake\Event\Event $event )
Вызывается после выполнения и отображения действия контроллера.
Параметры
-
Cake\Event\Event$event - Экземпляр события
Возвращает
Cake\Http\Response|nullСсылка
https://book.cakephp.org/3.0/ru/controllers.html#request-life-cycle-callbacksbeforeFilter()source public
beforeFilter( Cake\Event\Event $event )
Вызывается перед действием контроллера. Вы можете использовать этот метод для настройки и настройки компонентов или выполнения логики, которая должна выполняться перед каждым действием контроллера.
Параметры
-
Cake\Event\Event$event - Экземпляр события
Возвращает
Cake\Http\Response|nullСсылка
https://book.cakephp.org/3.0/ru/controllers.html#request-life-cycle-callbacksbeforeRedirect()source public
beforeRedirect( Cake\Event\Event $event , string|array $url , Cake\Http\Response $response )
Метод beforeRedirect вызывается, когда вызывается метод redirect контроллера, но до любого дальнейшего действия.
Если событие остановлено, контроллер не будет продолжать перенаправлять запрос. Переменные $url и $status имеют то же значение, что и для метода контроллера. Вы можете установить результат события в экземпляр ответа или изменить местоположение перенаправления, используя экземпляр ответа контроллера.
Параметры
-
Cake\Event\Event$event - Экземпляр события
- string|array
$url Строка или массив, представляющий URL, указывающий на другое местоположение в приложении или абсолютный URL
-
Cake\Http\Response$response - Объект ответа.
Возвращает
Cake\Http\Response|nullСсылка
https://book.cakephp.org/3.0/ru/controllers.html#request-life-cycle-callbacksbeforeRender()source public
beforeRender( Cake\Event\Event $event )
Вызывается после выполнения действия контроллера, но перед отображением представления. Вы можете использовать этот метод для выполнения логики или установки переменных представления, необходимых для каждого запроса.
Параметры
-
Cake\Event\Event$event - Экземпляр события
Возвращает
Cake\Http\Response|nullСсылка
https://book.cakephp.org/3.0/ru/controllers.html#request-life-cycle-callbackscomponents()source public
components( Cake\Controller\ComponentRegistry|null $components = null )
Получение реестра компонентов для этого контроллера.
Если вызывается с первым параметром, он будет установлен в качестве свойства контроллера $this->_components
Параметры
-
Cake\Controller\ComponentRegistry|null$componentsнеобязательно null - Реестр компонентов.
Возвращает
Cake\Controller\ComponentRegistrydisableAutoRender()source public
disableAutoRender( )
Отключение автоматического отображения действия.
Возвращает
$this
С тех пор
3.6.0enableAutoRender()source public
enableAutoRender( )
Включение автоматического отображения действия.
Возвращает
$this
С тех пор
3.6.0getPlugin()source public
getPlugin( )
Возвращает имя плагина.
Возвращает
строка|nullС тех пор
3.6.0getRequest()source public
getRequest( )
Получает экземпляр запроса.
Возвращает
Cake\Http\ServerRequestС тех пор
3.6.0getResponse()source public
getResponse( )
Получает экземпляр ответа.
Возвращает
Cake\Http\ResponseС тех пор
3.6.0implementedEvents()source public
implementedEvents( )
Возвращает список всех событий, которые будут срабатывать в контроллере в течение его жизненного цикла. Вы можете переопределить эту функцию, чтобы добавить свои собственные обработчики событий
Возвращает
массивРеализация
Cake\Event\EventListenerInterface::implementedEvents() initialize()source public
initialize( )
Метод инициализации.
Реализуйте этот метод, чтобы избежать необходимости переписывать конструктор и вызывать родительский.
invokeAction()source public
invokeAction( )
Отправляет действие контроллера. Проверяет, существует ли действие и оно не является частным.
Возвращает
смешанноеРезультирующий ответ.
Исключения
Исключение отраженияisAction()source public
isAction( string $action )
Метод для проверки того, доступно ли действие из URL.
Переопределите этот метод, чтобы изменить методы контроллера, которые можно достичь. По умолчанию все методы, определенные в Cake\Controller\Controller, недоступны, и все публичные методы во всех подклассах этого класса доступны.
Параметры
- строка
$action - Действие для проверки.
Возвращает
логическоеДоступно ли действие из URL.
Исключения
Исключение отраженияisAutoRenderEnabled()source public
isAutoRenderEnabled( )
Возвращает true, если действие должно быть отображено автоматически.
Возвращает
логическоеС тех пор
3.6.0loadComponent()source public
loadComponent( string $name , array $config = [] )
Добавление компонента в реестр контроллера.
Этот метод также установит компонент в свойство. Например:
$this->loadComponent('Acl.Acl'); Приведет к установке свойства Toolbar.
Параметры
- строка
$name - Имя компонента для загрузки.
- массив
$configнеобязательно [] - Настройка компонента.
Возвращает
Cake\Controller\ComponentИсключения
Исключениеpaginate()source public
paginate( Cake\ORM\Table|string|Cake\ORM\Query|null $object = null , array $settings = [] )
Обрабатывает постраничную навигацию записей в объектах таблиц.
Загрузит соотвествующий объект таблицы и позволит компоненту PaginatorComponent выполнить постраничную навигацию запроса, используя данные запроса и настройки, определенные в $this->paginate.
Этот метод также сделает PaginatorHelper доступным в представлении.
Параметры
-
Cake\ORM\Table|строка|Cake\ORM\Query|null$objectнеобязательный null Таблица для постраничной навигации (например: экземпляр таблицы, 'НазваниеТаблицы' или объект запроса)
- массив
$settingsнеобязательный [] - Настройки/конфигурация, используемые для постраничной навигации.
Возвращает
Cake\ORM\ResultSet|Cake\Datasource\ResultSetInterfaceРезультаты запроса
Выбрасывает
RuntimeExceptionПри отсутствии совместимого объекта таблицы.
Ссылка
https://book.cakephp.org/3.0/ru/controllers.html#paginating-a-modelredirect()source public
redirect( string|array $url , integer $status = 302 )
Перенаправляет на заданный $url после выключения $this->autoRender.
Параметры
- строка|массив
$url Строка или массив, представляющий URL, указывающий на другое местоположение в приложении или абсолютный URL
- целое число
$statusнеобязательный 302 - Код HTTP-статуса (например: 301)
Возвращает
Cake\Http\Response|nullСсылка
https://book.cakephp.org/3.0/ru/controllers.html#Controller::redirectreferer()source public
referer( string|array|null $default = null , boolean $local = false )
Возвращает URL, по которому был получен текущий запрос.
Параметры
- строка|массив|null
$defaultнеобязательный null - URL по умолчанию, используемый, если HTTP_REFERER не может быть считан из заголовков
- boolean
$localнеобязательный false - Если true, ограничивает ссылки на источники локальным сервером
Возвращает
строкаURL ссылки
render()source public
render( string|null $view = null , string|null $layout = null )
Инициализирует правильный класс представления, передает ему данные и использует его для рендеринга выходных данных представления.
Параметры
- строка|null
$viewнеобязательный null - Представление для рендеринга
- строка|null
$layoutнеобязательный null - Макет для использования
Возвращает
Cake\Http\ResponseОбъект ответа, содержащий отрендеренное представление.
Ссылка
https://book.cakephp.org/3.0/ru/controllers.html#rendering-a-viewsetAction()source public
setAction( string $action , ... $args )
Внутренне перенаправляет одно действие на другое. Не выполняет другой HTTP-запрос, в отличие от Controller::redirect()
Примеры:
setAction('another_action');
setAction('action_with_parameters', $parameter1); Параметры
- строка
$action Новое действие, на которое происходит «перенаправление». Любые другие параметры, переданные в этот метод, будут переданы как параметры новому действию.
- ...
$args - $args Аргументы, передаваемые в действие
Возвращает
смешанноеВозвращает значение, возвращаемое вызываемым действием
setName()source public
setName( string $name )
Устанавливает имя контроллера.
Параметры
- строка
$name - Имя контроллера.
Возвращает
$this
Since
3.6.0setPlugin()source public
setPlugin( string $name )
Устанавливает имя плагина.
Параметры
- строка
$name - Имя плагина.
Возвращает
$this
Since
3.6.0setRequest()source public
setRequest( Cake\Http\ServerRequest $request )
Устанавливает объекты запроса и настраивает ряд свойств контроллера на основе содержимого запроса. Контроллер действует как прокси для определенных переменных представления, которые также должны быть обновлены здесь. Свойства, которые устанавливаются:
- $this->request - В параметр $request
- $this->passedArgs - То же самое, что $request->params['pass]
Параметры
-
Cake\Http\ServerRequest$request - Экземпляр запроса.
Возвращает
$this
setResponse()source public
setResponse( Cake\Http\Response $response )
Устанавливает экземпляр ответа.
Параметры
-
Cake\Http\Response$response - Экземпляр ответа.
Возвращает
$this
Since
3.6.0shutdownProcess()source public
shutdownProcess( )
Выполняет различные процессы завершения работы для этого контроллера. Вызывает компоненты и обратные вызовы контроллера в правильном порядке.
- вызывает обратный вызов компонента
shutdown. - вызывает метод контроллера
afterFilter.
Возвращает
Cake\Http\Response|nullstartupProcess()source public
startupProcess( )
Выполняет процесс запуска для этого контроллера. Вызывает компоненты и обратные вызовы контроллера в правильном порядке.
- Инициализирует компоненты, которые вызывают их обратный вызов
initialize - Вызывает контроллер
beforeFilter. - вызывает методы компонента
startup.
Возвращает
Cake\Http\Response|nullМетоды, используемые из Cake\Event\EventDispatcherTrait
dispatchEvent()source public
dispatchEvent( string $name , array|null $data = null , object|null $subject = null )
Обёртка для создания и отправки событий.
Возвращает отработанное событие.
Параметры
- строка
$name - Название события.
- массив|null
$dataнеобязательный null Любое значение, которое вы хотите передать с этим событием, для чтения слушателями.
- объект|null
$subjectнеобязательный null Объект, к которому относится это событие ($this по умолчанию).
Возвращает
Cake\Event\EventeventManager()source public устаревший
eventManager( Cake\Event\EventManager $eventManager = null )
Возвращает экземпляр менеджера Cake\Event\EventManager для этого объекта.
Вы можете использовать этот экземпляр для регистрации новых слушателей или обратных вызовов для событий объекта, или для создания собственных событий и их триггеров по мере необходимости.
Устарел
3.5.0 Используйте getEventManager()/setEventManager() вместо этого.Параметры
-
Cake\Event\EventManager$eventManagerнеобязательный null - менеджер события для установки
Возвращает
Cake\Event\EventManagergetEventManager()source public
getEventManager( )
Возвращает экземпляр менеджера Cake\Event\EventManager для этого объекта.
Вы можете использовать этот экземпляр для регистрации новых слушателей или обратных вызовов для событий объекта, или для создания собственных событий и их триггеров по мере необходимости.
Возвращает
Cake\Event\EventManagersetEventManager()source public
setEventManager( Cake\Event\EventManager $eventManager )
Возвращает менеджер Cake\Event\EventManager для данного объекта.
Вы можете использовать этот экземпляр для регистрации новых слушателей или обратных вызовов событий объекта, или создать собственные события и вызывать их по своему усмотрению.
Параметры
-
Cake\Event\EventManager$eventManager - устанавливаемый менеджер событий
Возвращает
$this
Методы, используемые из Cake\ORM\Locator\LocatorAwareTrait
getTableLocator()source public
getTableLocator( )
Получает локатор таблиц.
Возвращает
Cake\ORM\Locator\LocatorInterfacesetTableLocator()source public
setTableLocator( Cake\ORM\Locator\LocatorInterface $tableLocator )
Устанавливает локатор таблиц.
Параметры
-
Cake\ORM\Locator\LocatorInterface$tableLocator - Экземпляр LocatorInterface.
Возвращает
$this
tableLocator()source public deprecated
tableLocator( Cake\ORM\Locator\LocatorInterface $tableLocator = null )
Устанавливает локатор таблиц. Если параметры не переданы, возвращает текущий используемый локатор.
Устаревшее
3.5.0 Используйте getTableLocator()/setTableLocator() вместо этого.Параметры
-
Cake\ORM\Locator\LocatorInterface$tableLocatorнеобязательно null - Экземпляр LocatorInterface.
Возвращает
Cake\ORM\Locator\LocatorInterfaceМетоды, используемые из Cake\Log\LogTrait
log()source public
log( mixed $msg , integer|string $level = LogLevel::ERROR , string|array $context = [] )
Удобный метод для записи сообщения в журнал. Подробнее о записи в журналы см. Log::write().
Параметры
- mixed
$msg - Сообщение для журнала.
- integer|string
$levelнеобязательно LogLevel::ERROR - Уровень ошибки.
- string|array
$contextнеобязательно [] - Дополнительные данные журнала, относящиеся к этому сообщению.
Возвращает
booleanРезультат записи в журнал.
Методы, используемые из Cake\Utility\MergeVariablesTrait
_mergeProperty()source protected
_mergeProperty( string $property , array $parentClasses , array $options )
Объединение одного свойства со значениями, объявленными во всех родительских классах.
Параметры
- string
$property - Имя свойства, подлежащего объединению.
- array
$parentClasses - Массив классов, которые нужно объединить.
- array
$options - Опции для объединения свойства, см. _mergeVars()
_mergePropertyData()source protected
_mergePropertyData( array $current , array $parent , boolean $isAssoc )
Объединение каждого из ключей в свойстве.
Параметры
- array
$current - Текущее объединенное значение.
- array
$parent - Значение родительского класса.
- boolean
$isAssoc - Флаг, указывающий, следует ли выполнять объединение в ассоциативном режиме.
Возвращает
mixedОбновленное значение.
_mergeVars()source protected
_mergeVars( array $properties , array $options = [] )
Объединение списка $properties со всеми родительскими классами текущего класса.
Опции:
-
associative- Список свойств, которые следует обрабатывать как ассоциативные массивы. Свойства в этом списке будут переданы через Hash::normalize() перед объединением.
Параметры
- array
$properties - Массив свойств и стратегии объединения для них.
- array
$optionsнеобязательно [] - Опции, используемые при объединении свойств.
Методы, используемые из Cake\Datasource\ModelAwareTrait
_setModelClass()source protected
_setModelClass( string $name )
Установка свойств modelClass и modelKey на основе соглашений.
Если свойства уже заданы, они не будут перезаписаны.
Параметры
- string
$name - Имя класса.
getModelType()source public
getModelType( )
Получение типа модели, который будет использоваться этим классом
Возвращает
stringloadModel()source public
loadModel( string|null $modelClass = null , string|null $modelType = null )
Загрузка и создание объектов репозитория, необходимых для этого объекта
Обычно используется для загрузки объектов ORM Table, если они требуются. Также может использоваться для загрузки других типов объектов репозитория, которые использует ваше приложение.
Если поставщик репозитория не возвращает объект, будет брошено исключение MissingModelException.
Параметры
- string|null
$modelClassнеобязательно null - Имя класса модели для загрузки. По умолчанию $this->modelClass
- string|null
$modelTypeнеобязательно null - Тип репозитория для загрузки. По умолчанию значение modelType().
Возвращает
Cake\Datasource\RepositoryInterfaceСозданный экземпляр модели.
Выбрасывает
Cake\Datasource\Exception\MissingModelExceptionЕсли класс модели не найден.
InvalidArgumentException
При использовании типа, который не зарегистрирован.
UnexpectedValueException
Если тип модели не определен
modelFactory()source public
modelFactory( string $type , callable $factory )
Переопределение существующей вызываемой функции для создания репозиториев заданного типа.
Параметры
- string
$type - Имя типа репозитория, для которого предназначена функция-фабрика.
- callable
$factory - Функция-фабрика, используемая для создания экземпляров.
modelType()source public deprecated
modelType( string|null $modelType = null )
Установка или получение типа модели, который будет использоваться этим классом
Устаревшее
3.5.0 Используйте getModelType()/setModelType() вместо этого.Параметры
- string|null
$modelTypeнеобязательно null - Тип модели или null для получения текущего
Возвращает
string|Cake\Datasource\ModelAwareTrait$this
setModelType()source public
setModelType( string $modelType )
Установка типа модели, который будет использоваться этим классом
Параметры
- string
$modelType - Тип модели
Возвращает
$this
Методы, используемые из Cake\Routing\RequestActionTrait
requestAction()source public deprecated
requestAction( string|array $url , array $extra = [] )
Вызывает метод контроллера из любого места. Может использоваться для соединения контроллеров или подключения плагинов к основному приложению. requestAction может использоваться для возвращения отрисованных представлений или получения возвращаемого значения из действий контроллера.
Под капотом этот метод использует Router::reverse() для преобразования параметра $url в строковый URL. Вы должны использовать форматы URL, совместимые с Router::reverse().
Примеры
Базовый пример получения возвращаемого значения действия контроллера:
$variables = $this->requestAction('/articles/popular'); Базовый пример использования request action для получения отрисованной страницы без макета.
$viewHtml = $this->requestAction('/articles/popular', ['return']); Вы также можете передать URL в виде массива:
$vars = $this->requestAction(['controller' => 'articles', 'action' => 'popular']);
Передача других данных запроса
Вы можете передать данные POST, GET, COOKIE и другие данные в запрос, используя соответствующие ключи. Куки могут быть переданы с помощью ключа cookies. Параметры GET можно задать с помощью query, а данные POST можно отправить с помощью ключа post.
$vars = $this->requestAction('/articles/popular', [
'query' => ['page' => 1],
'cookies' => ['remember_me' => 1],
]); Отправка значений окружения или заголовков
По умолчанию действия, запущенные с помощью этого метода, будут использовать глобальные значения $_SERVER и $_ENV. Если вы хотите переопределить эти значения для действия запроса, вы можете указать значения:
$vars = $this->requestAction('/articles/popular', [
'environment' => ['CONTENT_TYPE' => 'application/json']
]); Передача сессии
По умолчанию действия, запущенные с помощью этого метода, будут использовать стандартный объект сессии. Если вы хотите использовать конкретный экземпляр сессии, вам нужно его указать.
$vars = $this->requestAction('/articles/popular', [
'session' => new Session($someSessionConfig)
]); Устарело
3.3.0 Вам следует переписать ваш код, используя View Cells вместо этого метода.Параметры
- строка|массив
$url URL в виде строки или массива. В отличие от других массивов URL в CakePHP, этот URL не будет автоматически обрабатывать переданные аргументы в параметре $url.
- массив
$extraнеобязательно [] Если массив содержит ключ "return", он устанавливает autoRender в значение true. Также может быть использован для отправки данных GET/POST и передачи аргументов.
Возвращает
смешанноеБулево значение true или false при успехе/неудачи или содержимое отрисованного действия, если в $extra установлен ключ "return".
Методы, используемые из Cake\View\ViewVarsTrait
createView()source public
createView( string|null $viewClass = null )
Создает экземпляр класса представления на основе текущей конфигурации.
Параметры
- строка|null
$viewClassнеобязательно null - Необязательное полное имя класса View для создания экземпляра.
Возвращает
Cake\View\ViewИсключения
Cake\View\Exception\MissingViewExceptionЕсли класс представления не найден.
set()source public
set( string|array $name , mixed $value = null )
Сохраняет переменную или ассоциативный массив переменных для использования внутри шаблона.
Параметры
- строка|массив
$name - Строка или массив данных.
- смешанное
$valueнеобязательно null Значение в случае, если $name является строкой (которая затем работает как ключ). Не используется, если $name является ассоциативным массивом, иначе служит значениями для ключей $name.
Возвращает
$this
viewBuilder()source public
viewBuilder( )
Получить используемый билдер представлений.
Возвращает
Cake\View\ViewBuilderviewOptions()source public deprecated
viewOptions( string|array|null $options = null , boolean $merge = true )
Получить/установить допустимые параметры представления в свойстве _validViewOptions объекта. Свойство создается как пустой массив, если оно не задано. Если вызывается без параметров, возвращается текущий список допустимых параметров представления. См. createView().
Устарело
3.7.0 Используйте ViewBuilder::setOptions() или любой из его методов-сеттеров вместо этого.Параметры
- строка|массив|null
$optionsнеобязательно null - строка или массив строк, которые будут добавлены в _validViewOptions.
- boolean
$mergeнеобязательно true Выполнять слияние с существующими допустимыми параметрами представления или переопределять их. По умолчанию
true.
Возвращает
массивОбновленные параметры представления в виде массива.
Сводка магических методов
Магические методы, унаследованные от Cake\Event\EventDispatcherInterface
getEventManager() |
Подробности свойств
$Viewsource
public Cake\View\View
Экземпляр View, созданный во время отрисовки. Не будет установлен до вызова Controller::render().
Устарело
3.1.0 Используйте viewBuilder() вместо этого.$_componentssource
protected Cake\Controller\ComponentRegistry
Экземпляр ComponentRegistry, используемый для создания компонентов.
$_responseClasssource
protected строка
Имя класса, используемого для создания объекта ответа.
'Cake\Http\Response'
$_validViewOptionssource
protected массив
Эти свойства контроллера будут переданы из контроллера в представление в качестве параметров.
См.
Cake\View\ViewУстарело
3.7.0 Используйте ViewBuilder::setOptions() или любой из его методов-сеттеров вместо этого.[
'passedArgs'
] $autoRendersource
protected булево
Устанавливается в значение true для автоматического рендеринга представления после логики действия.
true
$componentssource
public массив
Массив, содержащий имена компонентов, используемых этим контроллером. Имена компонентов не должны содержать часть "Component" имени класса.
Пример:
public $components = ['RequestHandler', 'Acl'];
Ссылка
https://book.cakephp.org/3.0/en/controllers/components.htmlУстарело
3.0.0 Вам следует настраивать компоненты в методе Controller::initialize().[]
$helperssource
public массив
Массив, содержащий имена хелперов, используемых этим контроллером. Элементы массива не должны содержать часть "Helper" имени класса.
Пример:
public $helpers = ['Form', 'Html', 'Time'];
Ссылка
https://book.cakephp.org/3.0/en/controllers.html#configuring-helpers-to-loadУстарело
3.0.0 Вы должны настроить хелперы в методе AppView::initialize().[]
$namesource
protected строка
Имя этого контроллера. Имена контроллеров множественного числа, названные по модели, которую они обрабатывают.
Автоматически устанавливается с помощью соглашений в Controller::__construct().
$paginatesource
public массив
Настройки для постраничной навигации.
Используется для предварительной настройки параметров постраничной навигации для различных таблиц, по которым ваш контроллер будет осуществлять постраничную навигацию.
См.
Cake\Controller\Component\PaginatorComponent[]
$passedArgssource
public array
Содержит все переданные параметры.
Устаревшее
3.1.0 Используйте$this->request->getParam('pass') вместо этого.[]
$requestsource
public Cake\Http\ServerRequest
Экземпляр объекта \Cake\Http\ServerRequest, содержащий информацию о текущем запросе. Этот объект содержит всю информацию о запросе и несколько методов для чтения дополнительной информации о запросе.
Устаревшее 3.6.0: Свойство станет защищённым в 4.0.0. Используйте getRequest()/setRequest вместо него.
Ссылка
https://book.cakephp.org/3.0/ru/controllers/request-response.html#request$responsesource
public Cake\Http\Response
Экземпляр объекта Response, содержащий информацию о предстоящем ответе.
Устаревшее 3.6.0: Свойство станет защищённым в 4.0.0. Используйте getResponse()/setResponse вместо него.
Ссылка
https://book.cakephp.org/3.0/ru/controllers/request-response.html#responseПодробное описание магических свойств
$Authsource
$Cookiesource
$Csrfsource
$Flashsource
$Paginatorsource
$RequestHandlersource
$Securitysource
© 2005–present 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/3.7/class-Cake.Controller.Controller.html