我正在开发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')));
我无法指出错误位置。
答案 0 :(得分:3)
不应该是:
var $validate= array('product_id'=> array('rule'=>'numeric',
'on'=>'create',
//etc
否则您正在尝试验证名为numeric
的字段?
另外,虽然我不知道你的应用程序是如何运作的,但使用product_id
听起来应该与另一条记录有关,在products
表中 - 这将自动用Cake处理,即选择。
如果您输入的是唯一代码(例如内部参考编号),请考虑将该字段重命名为更少 - 类似于Cake,以防止可能出现的任何问题或与其他Cake开发人员混淆。