如果条件为真,则应显示“已退出”的错误消息,否则应显示“成功”消息。
是否可以将类似的验证添加到模型部分:
$name = $_POST["name"];
$validation_sql = "SELECT COUNT(*) > 0 FROM college WHERE status='2' AND name='$name'";
答案 0 :(得分:0)
您可以使用hasAny()作为解决方案:
$conditions = array(
'status'=>'2',
'name'=>$name
);
if ($this->XXXXXXX->hasAny($conditions)){
//do something
}
如果找到其他true
, hasAny 将返回false
。
注意:版本3.x中没有hasAny
答案 1 :(得分:0)
您可以在模型中添加服务器验证,如:
public $validate = array(
'name' => array(
'rule' => array('isUnique', array('name'), false),
'message' => 'This name has already been used.'
)
);
答案 2 :(得分:0)
建议不要在CakePHP中使用$ _POST,而是使用控制器中的Request对象来访问POST请求给出的数据:
$this->request->data['College']['name'];
然后可以将此信息传递给验证它的模型。
如果由CakePHP表单助手创建了post请求,您不需要访问它 - 您可以直接将数据传递给模型实例的save方法(参见CakePHP Handbook - Saving your data)。 / p>
if ($this->College->save($this->request->data)) {
// handle the success (Normally success flash)
}
debug($this->College->validationErrors); //Normally error flash - if FormHelper is used the error messages are automatically shown beside the input elements
可以使用Bake Console添加验证,也可以通过将validation rules添加到College Model代码来手动添加验证:
public $validate = array(
'name' => array(
'rule' => 'isUnique',
'message' => 'This username has already been taken.'
)
);