Трейт RequestActionTrait
Предоставляет метод requestAction() для выполнения подзапросов
Прямые пользователи
Косвенные пользователи
- Cake\Controller\ErrorController
- Cake\View\AjaxView
- Cake\View\JsonView
- Cake\View\SerializedView
- Cake\View\XmlView
Устаревший: 3.3.0 Используйте ячейки представления вместо этого.
Расположение: Routing/RequestActionTrait.php
Краткое описание методов
- requestAction() public
Вызывает метод контроллера из любого места. Может использоваться для подключения контроллеров друг к другу или связывания плагинов с основным приложением. requestAction может использоваться для возвращения рендеренных представлений или получения возвращаемого значения из действий контроллера.
Подробное описание методов
requestAction()source public
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)
]); Параметры
- строка|массив
$url URL в виде строки или массива. В отличие от других массивов URL в CakePHP, этот URL не будет автоматически обрабатывать переданные аргументы в параметре $url.
- массив
$extraнеобязательно [] если массив содержит ключ «return», он устанавливает autoRender в true. Также может использоваться для отправки данных GET/POST и переданных аргументов.
Возвращаемое значение
смешанный типБулево значение true или false при успехе/неудаче или содержимое рендеренного действия, если в $extra задан ключ «return».
© 2005–2018 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.5/class-Cake.Routing.RequestActionTrait.html