我有一个保存ad
的表单,此ad
有很多信息,此ad
的视觉效果可能是image
或{{1} }}。我有一个video
,其中有两个值,combo box
和image (value 0)
。这个video (value 1)
不是布尔值,只是代码,如果有一天我有第三种类型,它将是0 and 1
...
问题是,在验证时,如果此组合框的值为2
,我只允许image_file
成为empty
,所以我这样做了:
1 (video)
我收到了这个错误:
$validator
->allowEmpty('image_file', function($context){
if ($context['data']['type'] == 1) { //This is the 142 Line, Type is the combobox.
return true;
}
return false;
});
奇怪的是,如果我这样做,我确定Notice (8): Undefined index: type [APP/Model\Table\AdsTable.php, line 142]
字段存在:
type
我可以在 $validator
->allowEmpty('image_file', function($context){
echo $context['data']['type']; // Echo the type field value.
if ($context['data']['type'] == 1) {
return true;
}
return false;
});
获取type
值,以便证明该字段存在。
更新
如果我这样做:
echo
正好在字段上我得到了$validator
->allowEmpty('image_file', function($context){
print_r($context['data']);
if ($context['data']['type'] == 1) {
return true;
}
return false;
});
和empty array
,问题是,在表单创建时创建字段而不是在表单发布时触发验证,因此{ {1}}实际上并不存在。
我确定这是问题,但不知道如何解决这个问题。