1
我正在尝试使用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" => array("minLength" => 1),
"message" => "Name is required"
),
"email" => array(
"emailFormat" => array("rule" => "notEmpty", "last" => true, "message" => "Email is required"),
"emailNeeded" => array("rule" => array("email", 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);
$this->Enquiry->set("data", $this->data);
if ($this->Enquiry->validates(
array("fieldList" => array("name", "email"))
)) {
// .....
}
}
}
}
查看....
// /app/views/nodes/enquire.ctp
<?php echo $form->create("Node", array("action" => "ask")); ?>
<?php echo $form->input("name", array("label" => "Name")); ?>
<?php echo $form->input("email", array("label" => "Email")); ?>
<?php echo $form->input("phone", array("label" => "Phone")); ?>
<?php echo $form->end("Send");?>
我的问题:在提交时,表单从不验证。即使我没有在表单中输入任何内容,validate函数也会每次都返回true。
我在做什么错?
Regards
这并不工作。现在我看到$ this-> Model-> validates()返回false,但我仍然看不到出现的错误消息。我需要在我的模型中使用invalidate()方法吗? – vikmalhotra 2010-07-01 01:54:52
我刚刚检查了invalidFields数组,它在那里显示无效字段。但是错误信息并没有以形式出现...... – vikmalhotra 2010-07-01 02:02:14
这很奇怪。尝试'$ form-> error('email');' – bancer 2010-07-01 02:56:41