如何在php Symfony

时间:2016-07-12 21:37:38

标签: php symfony checkbox

我有一个有点棘手的场景(对我来说),而且我还没有完全了解如何做到这一点。

创建订单并将其分配给主管进行审批。主管通过单击按钮批准或不批准订单。有时主管需要发送订单以进行第二次批准。为此,在主管批准订单之前,他需要选中一个复选框“需要第二次批准”。选中该复选框后,隐藏字段将显示在主管可以选择第二个用户进行审批的位置。

话虽如此,我怎么能;

  1. 在Symfony中获取一个复选框以切换要隐藏或不隐藏的字段,并
  2. 当选中该复选框时,如何用PHP检查Symfony方式(如果我可以这样说)或不更新订单的状态。如果选中该复选框 - >意味着需要第二次批准 - >意味着'部分批准'作为地位。如果没有选中 - >表示不需要第二次批准 - >意思是 - > '已批准'作为身份。注意;复选框值没有存储在数据库中,还是最好这样做?
  3. 我真的希望这很清楚。拜托,我需要帮助,我还不了解Symfony的一切。我在1月开始学习它。

    提前谢谢!

    更新:我想我找到了让我朝着正确方向前进的方法; get value of checkbox in symfony

1 个答案:

答案 0 :(得分:0)

这里有几个问题。

首先关于复选框: 您可以将复选框存储在数据库中。使用表单类型中的属性mappedhttp://symfony.com/doc/current/reference/forms/types/form.html#mapped

其次,关于显示可选字段: 有很多方法可以做到。

一种方法是在表单类型中设置此字段,通过将其类型设置为“hidden”(构建器上的add()函数的第二个参数)使其隐藏,在复选框上添加javascript侦听器并相应地更新字段的type属性。这是快捷的方式。

另一种方法是使用表单监听器/订阅者。见http://symfony.com/doc/current/cookbook/form/dynamic_form_modification.html

在两种方式中,请确保您的“第二批准主管”属性在您的订单实体中可以为空,因为此字段是可选的。