Symfony 4 isClicked метод не найден - PullRequest
0 голосов
/ 14 мая 2019

Я пытался создать простую форму, и мне нужно проверить, была ли нажата кнопка отправки. Я проверил документацию Symfony, и он говорит использовать метод isClicked (). Я пытался использовать его, но метод не найден в моем проекте.

Я попытался включить Symfony \ Component \ Form \ ClickableInterface и изменить тип кнопки.

public function play(WordRepository $rep, Request $request)
{
    $form = $this->createFormBuilder()
        ->add("submit",SubmitType::class)->getForm();

    $form->handleRequest($request);

    $form->get("submit")->isClicked();

    return $this->render(
        "review.html.twig"
    );
}

Нужно ли что-то добавлять с помощью Composer или я делаю что-то не так?

Ответы [ 2 ]

2 голосов
/ 14 мая 2019

То есть ваша IDE занимается жалобами? Сказать, что isClicked не существует? А сам код работает нормально?

Просто нужно сделать несколько типов приведения. IDE знает, что $ form-> get вернет FormInterface. Но, к сожалению, у FormInterface нет метода isClicked. Вам нужно сообщить IDE, что вы ожидаете, что будет возвращен интерактивный объект.

    $form->handleRequest($request);

    /** @var ClickableInterface $button  */
    $button = $form->get("submit");
    $button->isClicked();

Довольно странно, что такого никогда не было. Возможно, где-то была небольшая подстройка кода.

0 голосов
/ 14 мая 2019

Вы можете сделать это:

    if ($form->isSubmitted() ) {
        //...
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...