Поиск…


Вступление

Класс запроса Symfony представляет собой объектно-ориентированное представление HTTP-запроса. Он содержит информацию, такую ​​как URL, строку запроса, загруженные файлы, файлы cookie и другие заголовки, поступающие из браузера.

Синтаксис

  • $ Request-> getPathInfo (); // возвращает запрашиваемый путь (локальная часть URL-адреса) (но без строки запроса). Т.е. при посещении https://example.com/foo/bar?key=value это будет содержать / foo / bar
  • $ Request-> query-> Get ( 'ID'); // возвращает параметр строки запроса ($ _GET)
  • $ request-> query-> get ('id', 1); // возвращает параметр строки запроса со значением по умолчанию
  • $ Request-> request-> Get ( 'имя'); // возвращает переменную body запроса ($ _POST)
  • $ Request-> files-> Get ( 'вложение'); // возвращает экземпляр UploadedFile, идентифицированный «вложением»,
  • $ Request-> cookies-> Get ( 'PHPSESSID'); // возвращает значение cookie ($ _COOKIE)
  • $ Request-> headers-> Get ( 'content_type'); // возвращает заголовок запроса HTTP
  • $ Request-> getMethod (); // возвращает метод HTTP-запроса (GET, POST, PUT, DELETE и т. д.).
  • $ Request-> getLanguages ​​(); // возвращает массив языков, которые клиент принимает

Получение параметра строки запроса

Допустим, мы хотим создать разбитый список продуктов, где номер страницы передается как параметр строки запроса. Например, чтобы получить 3-ю страницу, вы переходите к:

http://example.com/products?page=3

Необработанный HTTP-запрос будет выглядеть примерно так:

GET /products?page=3 HTTP/1.1
Host: example.com
Accept: text/html
User-Agent: Mozilla/5.0 (Macintosh)

Чтобы получить номер страницы из объекта запроса, вы можете получить доступ к свойству query :

$page = $request->query->get('page'); // 3

В случае параметра page вы, вероятно, захотите передать значение по умолчанию, если параметр строки запроса не задан:

$page = $request->query->get('page', 1);

Это означает, что когда кто-то посещает http://example.com/products (обратите внимание на отсутствие строки запроса), переменная $page будет содержать значение по умолчанию 1 .

Создание объекта запроса из глобальных переменных

PHP предоставляет ряд так называемых глобальных переменных, которые содержат информацию о HTTP-запросе, например $_POST , $_GET , $_FILES , $_SESSION и т. Д. Класс Request содержит статический createFromGlobals() для создания экземпляра запроса объект, основанный на этих переменных:

use Symfony\Component\HttpFoundation\Request;

$request = Request::createFromGlobals();

При использовании инфраструктуры Symfony вы не должны создавать экземпляр объекта запроса самостоятельно. Вместо этого вы должны использовать объект, app.php при app.php фреймворка в app.php / app_dev.php . Например, по типу, намекающему на объект запроса в вашем контроллере .

Доступ к переменной POST

Чтобы получить содержимое формы, представленной method="post" , используйте свойство post :

$name = $request->request->get('name');
$id = $request->cookies->get('PHPSESSID');

Это вернет значение cookie 'PHPSESSID', отправленное браузером.



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow