使用Cake v2.x我有一个表单,我的add方法提供了四个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表中,并且对于3个选项保留为空,其中的variation_id = 0。我需要忽略这些选项,在这种情况下不保存。
我的表格如下:
$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)
我当然可以在保存前查找空选择并将其从数组中删除但这些看起来像是黑客?我确定框架可以解决这个问题吗?
答案 0 :(得分:0)
您可以使用数据验证:
http://book.cakephp.org/2.0/en/models/data-validation.html
public $validate = array(
'variation_id' => array(
'notempty' => array(
'rule => array('notempty')
)
)
)