我有一个Order实体。 我有一个状态实体,其中包含一些状态选项,即。已提交,已开票,付费,已发货(ID 1-4)。我有一个页面,我想列出它上面提到的每个对应于某个状态的多个按钮。基本上多个按钮的原因是,我希望用户能够通过点击他们想要的基本上跳过某些状态记录...我有一些逻辑,将确定按钮来呈现但是我的问题是能够告诉提交表单时点击了哪个按钮。Symfony2的多个表单按钮
从文档我知道,看是否被点击一个按钮的唯一方法是使用: $form->get('buttonName')->isClicked();
路上,我现在正在考虑这个权利是我的按钮将被statusId命名它对应于。即:$form->add('status1', SubmitType::class)
#是状态记录的ID。
了这个问题,这是在页面上生成的按钮将是动态的。因此,它会像在这一点上,我需要查询我的数据库为所有的状态和遍历所有的可能性:
foreach ($statuses as $status)
{
if($form->get('status' . $status->getId())->isClicked()){
{
//Do Something
break;
}
}
我觉得必须有一个更好的办法... IE:$form->getSubmitButtonName()
这将返回“状态#”,然后我可以做一个SUBSTR()来获取ID出了名的..
所以,我也讨论这个自己,但它似乎打开另一罐蠕虫......我的状态是我的数据库中的一个实体,它具有自我引用的多对多关系,它定义了接下来允许的状态。所以我试图添加一个EntityType表单字段的状态而不是选择类型,问题是我需要创建一个查询生成器来限制实体只是在自我引用关系的实体,我卡住了......以前我可以只使用$状态 - > getNextStatues(),但是当我需要给一个QueryBuilder的我被困... – snoop168
问在这里一个新的问题: http://stackoverflow.com/questions/39661800/many-to-many -self-referencing-query-builder 一旦我完全正常工作,我可能会将你标记为答案。谢谢,希望你能帮助其他部分 – snoop168