Метод set класса CrawlerForm
Метод set класса CrawlerForm устанавливает значение
для поля формы по его имени. Первым параметром
передаётся имя поля, вторым - значение. Метод
возвращает объект формы для цепочки вызовов.
Синтаксис
set(string $name, mixed $value): static
Пример
Давайте получим форму через метод selectButton
и установим значение для поля user:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\DomCrawler\Crawler;
class ArticleController extends AbstractController
{
public function index(): Response
{
$html = '
<form>
<input type="text" name="user" value="old">
</form>
';
$crawler = new Crawler($html);
$form = $crawler->selectButton('submit')->form();
$form->set('user', 'abcde');
return new Response($form->get('user')->getValue());
}
}
?>
Результат выполнения кода:
"abcde"
Пример
Давайте установим значения сразу для двух полей через цепочку вызовов:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\DomCrawler\Crawler;
class ArticleController extends AbstractController
{
public function index(): Response
{
$html = '
<form>
<input type="text" name="user">
<input type="text" name="article">
</form>
';
$crawler = new Crawler($html);
$form = $crawler->selectButton('submit')->form();
$form->set('user', 'abcde')->set('article', 'hello');
$res = [
$form->get('user')->getValue(),
$form->get('article')->getValue()
];
return new Response(json_encode($res));
}
}
?>
Результат выполнения кода:
["abcde", "hello"]
Смотрите также
-
класс
CrawlerForm,
который представляет форму документа -
метод
get,
который возвращает поле формы по имени -
метод
getValues,
который возвращает значения всех полей формы -
метод
has,
который проверяет наличие поля в форме