我最近才开始使用CakePHP,并且无法验证是否在我为测试表单而创建的联系人应用程序中工作。一旦我在模态中设置了$validate
数组,就会在表单上显示星号,但是,当我提交表单时,我仍然没有收到验证消息。这是我的代码:
/app/View/Contacts/index.ctp
<h1>Contact Form</h1>
<?php
echo $this->Form->create('Contact');
echo $this->Form->input('name');
echo $this->Form->input('age');
echo $this->Form->end('Submit This Form!!!');
?>
/app/Controller/ContactsController.php
<?php
class ContactsController extends AppController {
public $helpers = array('Html', 'Form');
public function index() {
}
}
?>
/app/Model/Contact.php
<?php
class Contact extends AppModel {
var $useTable = false;
public $validate = array(
'name' => array(
'rule' => 'notEmpty',
'message' => 'Cannot leave this field blank.'
),
'age' => array(
'rule' => 'notEmpty',
'message' => 'Cannot leave this field blank.'
)
);
}
?>
答案 0 :(得分:1)
您未向我们展示的代码中可能存在错误: 如何在控制器中处理表单数据。 您可能忘记将数据设置为模型。
在这里看看这个教程: http://www.dereuromark.de/2011/12/15/tools-plugin-part-2-contact-form/
我猜看你的空(!)索引动作。 你什么都没做。应该如何触发验证?
我参考上面的链接。它向您展示了如何使用set()和validates()验证这样的表单。 基本上归结为:
if ($this->request->is('post') || $this->request->is('put')) {
$this->ContactForm->set($this->request->data);
if ($this->ContactForm->validates()) {
}
}
PS:因为“联系人”在这里不是一个字,并不意味着我应该意味着我建议你将你的控制器重命名为“ContactController”。这也是网址/contact