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

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

Метод has класса CrawlerForm проверяет, существует ли в форме поле с указанным именем. Первым параметром передаётся имя поля. Метод возвращает true, если поле найдено, и false в противном случае. Объект CrawlerForm обычно получают из краулера через метод forms или form.

Синтаксис

public function has(string $name): bool

Пример

Давайте создадим краулер с HTML-формой и проверим наличие поля name:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentDomCrawlerCrawler; use SymfonyComponentHttpFoundationResponse; class ArticleController extends AbstractController { public function index(): Response { $html = ' <form method="post" action="/submit"> <input type="text" name="name" value="abcde"> <input type="text" name="email" value="user@example.com"> <button type="submit">Send</button> </form> '; $crawler = new Crawler($html); $form = $crawler->form(); $res = $form->has('name'); return new Response(var_export($res, true)); } } ?>

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

true

Пример

Давайте проверим наличие несуществующего поля phone:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentDomCrawlerCrawler; use SymfonyComponentHttpFoundationResponse; class ArticleController extends AbstractController { public function index(): Response { $html = ' <form method="post" action="/submit"> <input type="text" name="name" value="abcde"> <input type="text" name="email" value="user@example.com"> <button type="submit">Send</button> </form> '; $crawler = new Crawler($html); $form = $crawler->form(); $res = $form->has('phone'); return new Response(var_export($res, true)); } } ?>

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

false

Пример

Давайте используем метод has для условной установки значения поля:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentDomCrawlerCrawler; use SymfonyComponentHttpFoundationResponse; class ArticleController extends AbstractController { public function index(): Response { $html = ' <form method="post" action="/submit"> <input type="text" name="name" value="abcde"> <input type="text" name="email" value="user@example.com"> <button type="submit">Send</button> </form> '; $crawler = new Crawler($html); $form = $crawler->form(); if ($form->has('email')) { $form->set('email', 'hello@example.com'); } return new Response($form->get('email')); } } ?>

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

"hello@example.com"

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

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