验证返回"未定义的索引"

时间:2015-05-11 12:55:03

标签: php cakephp-3.0

我有一个保存ad的表单,此ad有很多信息,此ad的视觉效果可能是image或{{1} }}。我有一个video,其中有两个值,combo boximage (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}}实际上并不存在。

我确定这是问题,但不知道如何解决这个问题。

0 个答案:

没有答案