如果條件爲真,則應顯示錯誤消息「已退出」,否則應顯示消息「成功」。如何給CAKEPHP驗證?
是否有可能像這樣添加一個驗證的模型部分:
$name = $_POST["name"];
$validation_sql = "SELECT COUNT(*) > 0 FROM college WHERE status='2' AND name='$name'";
如果條件爲真,則應顯示錯誤消息「已退出」,否則應顯示消息「成功」。如何給CAKEPHP驗證?
是否有可能像這樣添加一個驗證的模型部分:
$name = $_POST["name"];
$validation_sql = "SELECT COUNT(*) > 0 FROM college WHERE status='2' AND name='$name'";
您可以使用hasAny()作爲解決方案:
$conditions = array(
'status'=>'2',
'name'=>$name
);
if ($this->XXXXXXX->hasAny($conditions)){
//do something
}
hasAny將返回true
如果發現其他false
。
注意:hasAny不3.x版本
您可以像模型添加服務器驗證可用:
public $validate = array(
'name' => array(
'rule' => array('isUnique', array('name'), false),
'message' => 'This name has already been used.'
)
);
不建議在使用$ _ 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.'
)
);
請閱讀[驗證](HTTP手動部分://book.cakephp。組織/ 2.0/EN /模型/數據validation.html)。您需要的規則是[isUnique](http://book.cakephp.org/2.0/en/models/data-validation.html#Model::Validation::isisique)。 –
如何在同一時間使用三個CakePHP版本?正確標記你的東西! – burzum