基本:CakePHP数据未保存,验证也不起作用


Basic: CakePHP data not being saved nor validation working?

我想知道的是一个由两部分组成的问题。

为什么

验证不执行任何操作,为什么数据不会发布到数据库?

问题控制器.php

public function index() {
    $this->set('questions', $this->Question->find('all'));
}
public function view($id = null) {
    $this->Question->id = $id;
    $this->set('question', $this->Question->read());
}
public function ask() {
    if ($this->request->is('post')) {
        if ($this->Question->save($this->request->data)) {
            $this->Session->setFlash('Your Question has been asked.');
            $this->redirect(array('action' => 'index'));
        } else {
            $this->Session->setFlash('Unable to ask your question.');
        }
    }
}
}
  ?>

问题模型

 class Question extends AppModel {
   public $validate = array(
    'question' => array(
        'rule' => 'notEmpty'
    ),
);
}

表后格雷斯

CREATE TABLE questions (
id serial not null unique primary key,
question varchar(245),
timecreated timestamp default CURRENT_TIMESTAMP
)

问.ctp

<?php
 echo $this->Form->create('Post');
 echo $this->Form->input('question');
 echo $this->Form->end('Ask');
?>

问题可能是您在创建表单时指定了错误的模型。下一行

echo $this->Form->create('Post');

应该是

echo $this->Form->create('Question');