CakePHP Пусто Выбирает Сохранить

Используя Cake v2.x у меня есть форма для моего метода добавления, который предлагает четыре ввода HTML выбора. Выборы являются необязательными, если пользователь делает один выбор и сохраняет формат моего массива для сохранения следующим образом:

array(
    'AttributeProductVariation' => array(
        'product_id' => '26',
        'sku' => 'xxxxxx',
        'stock_level' => '10',
        'id' => ''
    ),
    'AttributeVariation' => array(
        (int) 1 => array(
            'variation_id' => '1'
        ),
        (int) 2 => array(
            'variation_id' => ''
        ),
        (int) 4 => array(
            'variation_id' => ''
        ),
        (int) 7 => array(
            'variation_id' => ''
        )
    )
)

Проблема заключается в том, что значения сохраняются в таблице AttributeVariation с Вариация_ид = 0 для 3 выбора, которые были оставлены пустыми. Мне нужно, чтобы эти опции игнорировались и не сохранялись в этом случае.

Мой помощник выглядит следующим образом:

$this->Form->input('AttributeVariation.'.($key).'.variation_id', [  
     'label' =>  $attributes[$key],                       
     'required' => false,
     'options' => $variations[$key],
     'empty' => 'Select an Attribute if required',
]);

Я сохраняю как следовать:

$this->AttributeProductVariation->saveAll($this->request->data)

Я мог бы, конечно, искать пустые выборки и удалять их из массива перед сохранением, но это похоже на хак? Я уверен, что Framework может справиться с этим из коробки?

1 ответ

Вы можете использовать проверку данных:

http://book.cakephp.org/2.0/en/models/data-validation.html

public $validate = array(
    'variation_id' => array(
        'notempty' => array( 
            'rule => array('notempty') 
        )
    )
)
Другие вопросы по тегам