embeddedforms和事件调度程序

时间:2012-10-09 10:15:42

标签: symfony-1.4 symfony-forms

我有3个表单,一个是SalesFormSalesItemFormEmbedSalesItemForm

我使用SalesItemForm

SalesForm放入我的embedRelation('SalesItems', EmbedSalesItemForm)

这些效果很好,当我查看促销时,我会看到嵌入其中的商品。没关系。

我想要做的是检查任何嵌入的表单值中是否出现值,如果是,可能会挂钩到事件调度程序/侦听器以发送电子邮件。

我可以通过以下方式获取表单值:

public function processValues($values) {

    var_dump($values);exit;

    return parent::processValues($values);

}

返回:

    array
      'SalesItems' => 
        array
          0 => 
            array
              'id' => string '38' (length=2)
              'quantity' => int 1
              'sku' => string 'test1' (length=9)
              'description' => string 'test1' (length=5)
              'price' => float 9.99
              'out_of_stock' => null
          1 => 
            array
              'id' => string '39' (length=2)
              'out_of_stock' => string 'on' (length=2)
              'quantity' => int 1
              'sku' => string '1234' (length=4)
              'description' => string 'test' (length=4)
              'price' => float 9.99
      'id' => string '20' (length=2)
      'first_name' => string 'Test' (length=4)
      'last_name' => string 'Name' (length=4)
      'email_address' => string 'test@test.com' (length=13)

理想情况下,我需要检查out_of_stock是否为on。这是一个复选框字段

非常感谢

1 个答案:

答案 0 :(得分:0)

据我了解,你需要这样的东西:

public function processValues($values) {

    if(isset($values)){
      foreach($values as $value){
        if($value['out_of_stock'] == 'on'){ // The checkbox is checked
          // Send mail
        }
      }
    }

    return parent::processValues($values);

}