我试图创建一个简单的表单,我需要检查是否单击了提交按钮。我检查了 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 添加一些东西还是我做错了什么?
那么你的 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)
有点奇怪,以前从未出现过这种情况。也许某个地方有轻微的代码调整。