0

3 つのフォームがあり、1 つはSalesFormSalesItemFormおよびEmbedSalesItemForm

私は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。これはチェックボックス フィールドです

どうもありがとう

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 に答える