我正在尝试在我的 CakePHP 联系表单中进行一些非常简单的验证,但是即使我认为我做了所有必要的事情,验证也不起作用。这是我所做的:
我做了一个这样的模型:
class Office extends AppModel { var $name = 'Office'; var $useTable = false; public $validate = array('onderwerp' => 'notEmpty'); }
$validate
(我还尝试了 CakePHP 在线手册中的许多其他值)在 Config/bootstrap.php 我为不让 CakePHP 期望复数“办公室”制定了这条规则:
Inflector::rules('plural', array('rules' => array(), 'irregular' => array(), 'uninflected' => array('office')));
在 OfficeController 中,我在我的方法中执行此操作
contact()
:$this->Office->set($this->request->data); if($this->Office->validates()){ echo "code validates"; } else { print_r($this->Office->validationErrors); }
在我
Office/contact.ctp
看来,我有(在其他代码中,比如开始和结束表单)这段代码:$this->Form->input('onderwerp', array('label'=>false, 'size' => 60));
现在,即使我填写表格,将“onderwerp”字段留空,它也会执行在执行代码时应该执行的代码。
当我print_r($this->request->data)
或print_r($this->Office)
我看到我的onderwerp
字段在那里并且它是空的(或者当我填写某些内容时已填充)。
现在,当我public function validates()
在我的模型中添加一个并在那里添加echo
一些东西时,它就会被显示出来。所以我会说 CakePHP 知道在哪里可以找到我的模型,并且会执行我的控制器代码。我也尝试添加return parent::validates();
我的validates()
函数,但这也没有产生验证错误或任何其他错误。我的调试级别设置为2
.
我想我在这个大海捞针中少了一根针。谢谢你帮我找到它!