在DB中写入失败:CakePhp Tuto

时间:2012-11-22 08:57:25

标签: php database cakephp

我正在学习CakePHP,我遵循这个tuto:http://book.cakephp.org/2.0/en/tutorials-and-examples/simple-acl-controlled-application/simple-acl-controlled-application.html

我正在使用CakePHP 2.2.3。

好吧,我到了必须添加群组和用户的地方。但是,我的数据库中没有我的组名...

你能帮助我吗?

GroupesController:

    <?php
    class GroupesController extends AppController{

    function add(){
    if (!empty($this->data)) {
            if ($this->Groupe->save($this->data)) {
                $this->flash('Votre groupe a été sauvegardé.','/groupes');
            }
        }
    }
    function beforeFilter(){
        parent::beforeFilter();
        $this->Auth->allow('*');
    }
  }
    ?>

型号:

<?php
class Groupe extends AppModel{
    public $actsAs=array('Acl'=>array('type'=>'requester'));
    var $validate = array(
    'nom' => array(
    'rule' => array('minLength', 1)
    )
    );
    public function parentNode(){
        return null;
    }
}
?>

查看:

<h1>Ajouter un groupe</h1>
    <?php
        echo $this->Form->create('groupes');
        echo $this->Form->input('nom');
        echo $this->Form->end('Sauvegarder le groupe');
    ?>

1 个答案:

答案 0 :(得分:0)

我认为您没有获取数据,因为您的视图中的表单未正确创建。它应该是模型的名称:

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

要查看哪些数据发布到您的add操作,您还可以使用debug()功能:

function add(){
    debug($this->data);
    ...
}

或Cake 2

function add(){
    debug($this->request->data);
    ...
}

您也可以在调用else之后添加save()来调试任何验证错误:

if ($this->Groupe->save($this->data)) {
  $this->flash('Votre groupe a été sauvegardé.','/groupes');
}
else{
    debug($this->Groupe->validationErrors);
}