我正在关注CakePHP网站上的blog tutorial,但验证不起作用,我不明白为什么,因为我正在使用博客教程代码。
我会直接从我的文件中报告......
MODEL
class Post extends AppModel
{
var $name = 'Post';
var $validate = array(
'title' => array(
'rule' => 'notEmpty'
),
'body' => array(
'rule' => 'notEmpty'
)
);
}
CONTROLLER
class PostsController extends AppController {
var $name = 'Posts';
function index() {
$this->set('posts', $this->Post->find('all'));
}
function view($id) {
$this->Post->id = $id;
$this->set('post', $this->Post->read());
}
function add() {
if (!empty($this->data)) {
if ($this->Post->save($this->data)) {
$this->Session->setFlash('Your post has been saved.');
$this->redirect(array('action' => 'index'));
}
}
}
}
查看(添加视图)
<h1>Add Post</h1>
<?php
echo $form->create('Post');
echo $form->input('title');
echo $form->input('body', array('rows' => '3'));
echo $form->end('Save Post');
?>
当我到达/ posts / add页面然后单击“保存而没有任何输入文本”时,它不会重新加载并显示错误;它将空数据插入到数据库中,然后使用“您的帖子已保存”消息重定向我。
为什么不验证自己?我已经读到docs,没有必要致电validate()
; save()
就足够了。
有关于此的任何想法吗?
答案 0 :(得分:0)
我发现错误:我正在命名模型文件,将它们大写。所以,我有一个Post.php
而不是post.php
。
CakePHP没有找到我的模型,所以它使用的是“生成”模型。