Spec-Zone.ru › CakePHP 3.3

Трейт RequestActionTrait

Обеспечивает метод requestAction() для выполнения подзапросов

Прямые пользователи

  • Cake\Controller\Controller
  • Cake\View\View

Косвенные пользователи

  • Cake\Controller\ErrorController
  • Cake\View\AjaxView
  • Cake\View\JsonView
  • Cake\View\SerializedView
  • Cake\View\XmlView
Пространство имен: Cake\Routing
Устарело: 3.3.0 Используйте ячейки представлений вместо этого.
Расположение: Routing/RequestActionTrait.php

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

  • requestAction() public

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

Подробное описание методов

requestAction()исходный код public

requestAction( string|array $url , array $extra [] )

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

Под капотом этот метод использует Router::reverse() для преобразования параметра $url в строковый URL. Вы должны использовать форматы URL, совместимые с Router::reverse()

Примеры

Базовый пример получения возвращаемого значения действия контроллера:

$variables = $this->requestAction('/articles/popular');

Базовый пример requestAction для получения рендеренной страницы без макета.

$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–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/3.3/class-Cake.Routing.RequestActionTrait.html

Spec-Zone.ru

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