CakePhp:无法向数据库添加行

时间:2015-02-20 15:10:52

标签: php mysql cakephp

我尝试使用CakePhp框架向我的数据库表中添加一个新行,但它无法正常工作。 这是我的add.ctp

echo $this->Form->create(array('type' => 'get'));
echo $this->Form->input('username');
echo $this->Form->input('password');

echo $this->Form->end('Save');

这是控制器添加功能:

public function add() {
    if ($this->request->is('get')) {
        $this->Admin->create();
        if ($this->Admin->save($this->request->data)) {
            debug("done");
            $this->Session->setFlash(__('Your post has been saved.'));
            return $this->redirect(array('action' => 'index'));
        }
    }
}

这是我的Admin Model类:

class Admin extends AppModel {
    public $validate = array(
        'username' => array(
        'rule' => 'notEmpty'
    ),
    'password' => array(
        'rule' => 'notEmpty'
    )
);

但新的行永远不会添加到我的Admins表中。数据库工作正常(我可以检索表中的所有行)。 我正在使用xampp

在localhost上工作

1 个答案:

答案 0 :(得分:1)

由于你的$ this-> request-> data is not populated with information you sent with your request,它无效。只需CakePHP以不同的方式处理postget

  

可以使用CakeRequest :: $ data。

访问所有POST数据

如果由于某种未知原因,您希望使用' get'你可以像这样访问它

$data['username'] = $this->params['url']['username'];
$data['password'] = $this->params['url']['password'];

另请注意this 'when do you use post, when do you use get'