找不到Symfony 4 isClicked方法

时间:2019-05-13 21:38:51

标签: 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"
    );
}

我需要使用Composer添加某些内容还是做错了什么?

2 个答案:

答案 0 :(得分:2)

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

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

    $form->handleRequest($request);

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

奇怪的是,这从来没有出现过。也许在某个地方有一些轻微的代码调整。

答案 1 :(得分:0)

您可以这样做:

    if ($form->isSubmitted() ) {
        //...
    }