0

我有 3 种形式,一种是aSalesFormSalesItemFormEmbedSalesItemForm

我有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_stockon. 这是一个复选框字段

非常感谢

4

1 回答 1

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);

}
于 2012-10-09T16:24:51.090 回答