主要关键字段未在cakephp中验证其唯一性

时间:2011-07-03 12:24:28

标签: php mysql cakephp

我正在开发cakephp框架,其中mysql是后端。我正在开发表单以输入产品详细信息,其中product_id将手动添加。我已经为product_id字段编写了验证规则。它适用于其他验证规则,即对于非空,数字。但不适用于唯一验证规则。这是我在模型中的验证代码:

var $validate= array(product_id=>
                                  'numeric'=> array('rule'=>'numeric',
                  'on'=>'create',
                  'message'=>'Please enter only numbers'),
                                  'isUnique' => array('rule' => 'isUnique',
                        message' => 'This product_id already exist'),

                 'notEmpty'=> array('rule' => 'notEmpty',
                        message' => 'Please enter the product id')),

            'product_name' => array('notEmpty'=> array(
                                    'rule' => 'notEmpty',
                                    'message' => 'Please enter the product name')));

我无法指出错误位置。

1 个答案:

答案 0 :(得分:3)

不应该是:

var $validate= array('product_id'=> array('rule'=>'numeric',
                    'on'=>'create',
                     //etc

否则您正在尝试验证名为numeric的字段?

另外,虽然我不知道你的应用程序是如何运作的,但使用product_id听起来应该与另一条记录有关,在products表中 - 这将自动用Cake处理,即选择。

如果您输入的是唯一代码(例如内部参考编号),请考虑将该字段重命名为更少 - 类似于Cake,以防止可能出现的任何问题或与其他Cake开发人员混淆。