0
我試圖使用cakephp模型實現表單驗證。這裏是我的代碼片段...Cakephp:驗證錯誤未出現在數據驗證中
型號
// File: /app/models/enquiry.php
class Enquiry extends AppModel {
var $name = "Enquiry";
var $useTable = false;
var $_schema = array(
"name" => array("type" => "string", "length" => 100),
"phone" => array("type" => "string", "length" => 30),
"email" => array("type" => "string", "length" => 255)
);
var $validate = array(
'name' => array(
'rule' => 'notEmpty',
'required' => true,
'message' => 'Name is required'
),
'email' => array(
'emailFormat' => array(
'rule' => 'notEmpty',
'required' => true,
'message' => 'Email is required'
),
'emailNeeded' => array(
'rule' => array('email', true),
'required' => true,
'message' => 'Must be a valid email address'
)
)
);
}
控制器動作
// /app/controllers/nodes_controller.php
class NodesController extends AppController {
var $name = "Nodes";
var $uses = array("Enquiry");
function enquire() {
if ($this->data) {
$this->Enquiry->set($this->data);
if ($this->Enquiry->validates()) {
// .....
} else {
$this->set("errors", $this->Enquiry->invalidFields());
}
}
}
}
查看....
// /app/views/nodes/enquire.ctp
<?php echo $form->create("Node", array("action" => "ask")); ?>
<?php echo $form->input("name", array(
"error" => array("class" => "error-message"),
"div" => false,
"label" => "Name",
"size" => "40"
)); ?>
<?php echo $form->input("email", array(
"error" => array("class" => "error-message"),
"div" => false,
"label" => "Email",
"size" => "40"
)); ?>
<?php echo $form->input("phone", array(
"label" => "Phone No.",
"div" => false,
"size" => "30"
)); ?>
<?php echo $form->end("Send");?>
我的問題:在提交時,表單驗證發生後,Model-> validates方法返回false,但是驗證錯誤永遠不會顯示。我檢查了invalidFields()返回的數組,我在模型中設置的所有錯誤消息都存在,但它們沒有顯示出來....
我在做什麼錯?
Regards
,我們已經找到了答案:)感謝的人。 – vikmalhotra 2010-07-01 06:55:23