2016-01-04 50 views
-3

如果条件为真,则应显示错误消息“已退出”,否则应显示消息“成功”。如何给CAKEPHP验证?

是否有可能像这样添加一个验证的模型部分:

$name = $_POST["name"]; 
$validation_sql = "SELECT COUNT(*) > 0 FROM college WHERE status='2' AND name='$name'"; 
+2

请阅读[验证](HTTP手动部分://book.cakephp。组织/ 2.0/EN /模型/数据validation.html)。您需要的规则是[isUnique](http://book.cakephp.org/2.0/en/models/data-validation.html#Model::Validation::isisique)。 –

+1

如何在同一时间使用三个CakePHP版本?正确标记你的东西! – burzum

回答

0

您可以使用hasAny()作为解决方案:

$conditions = array(
    'status'=>'2', 
    'name'=>$name 
); 
if ($this->XXXXXXX->hasAny($conditions)){ 
    //do something 
} 

hasAny将返回true如果发现其他false

注意:hasAny不3.x版本

0

您可以像模型添加服务器验证可用:

public $validate = array(
    'name' => array(
     'rule' => array('isUnique', array('name'), false), 
     'message' => 'This name has already been used.' 
    ) 
); 
0

不建议在使用$ _ POST CakePHP完全可以使用控制器中的Request对象来访问POST请求给出的数据:

$this->request->data['College']['name']; 

然后可以将此信息传递给验证的模型。

如果发布请求是由CakePHP表单助手创建的,则不需要访问它 - 您可以直接将数据传递给模型实例的save方法(请参阅CakePHP Handbook - Saving your data)。

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向学院型号代码被添加:

public $validate = array(
    'name' => array(
     'rule' => 'isUnique', 
     'message' => 'This username has already been taken.' 
    ) 
);