Symfony 4 isClicked 方法未找到

1 php symfony

我试图创建一个简单的表单,我需要检查是否单击了提交按钮。我检查了 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"
    );
}
Run Code Online (Sandbox Code Playgroud)

我需要用 Composer 添加一些东西还是我做错了什么?

Cer*_*rad 7

那么你的 IDE 正在抱怨吗?说 isClicked 不存在?但代码本身工作正常吗?

只需要进行一些类型转换。IDE 知道 $form->get 将返回 FormInterface。但是,有点遗憾的是,FormInterface 没有 isClicked 方法。您需要告诉 IDE 您希望返回一个可点击的对象。

    $form->handleRequest($request);

    /** @var ClickableInterface $button  */
    $button = $form->get("submit");
    $button->isClicked();
Run Code Online (Sandbox Code Playgroud)

有点奇怪,以前从未出现过这种情况。也许某个地方有轻微的代码调整。