РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1178 of 1361 menu

Метод getPhpValues класса CrawlerForm

Метод getPhpValues класса CrawlerForm возвращает значения полей формы в виде массива, который можно передать в PHP-функцию или использовать для дальнейшей обработки. В отличие от метода getValues, который возвращает плоский массив с именами полей, метод getPhpValues преобразует имена полей с квадратными скобками в вложенную структуру PHP-массива. Параметров метод не принимает.

Синтаксис

$form->getPhpValues()

Пример

Давайте создадим форму с полями name и email, заполним их и получим значения через метод getPhpValues:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\DomCrawler\Crawler; class FormController extends AbstractController { public function index(): Response { $html = '<form method="post"> <input type="text" name="name" value="abcde"> <input type="text" name="email" value="user"> </form>'; $crawler = new Crawler($html); $form = $crawler->filter('form')->form(); $res = $form->getPhpValues(); return new Response(json_encode($res)); } } ?>

Результат выполнения кода:

{"name": "abcde", "email": "user"}

Пример

Давайте создадим форму с полем, имя которого содержит квадратные скобки, чтобы увидеть разницу между getValues и getPhpValues:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\DomCrawler\Crawler; class FormController extends AbstractController { public function index(): Response { $html = '<form method="post"> <input type="text" name="user[name]" value="abcde"> <input type="text" name="user[email]" value="user"> </form>'; $crawler = new Crawler($html); $form = $crawler->filter('form')->form(); $res = $form->getPhpValues(); return new Response(json_encode($res)); } } ?>

Результат выполнения кода:

{"user": {"name": "abcde", "email": "user"}}

Пример

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

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\DomCrawler\Crawler; class FormController extends AbstractController { public function index(): Response { $html = '<form method="post"> <input type="text" name="title" value="article"> <input type="text" name="content" value="hello"> </form>'; $crawler = new Crawler($html); $form = $crawler->filter('form')->form(); $res = $form->getPhpValues(); return new Response($res['title'] . ' ' . $res['content']); } } ?>

Результат выполнения кода:

article hello

Смотрите также

  • метод getValues,
    который возвращает плоский массив значений формы
  • метод get,
    который возвращает значение конкретного поля формы
  • метод set,
    который устанавливает значение поля формы
  • класс CrawlerForm,
    который представляет форму на странице
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить