CakePHP无法插入数据库(日期时间格式)

时间:2015-06-15 18:39:51

标签: database datetime cakephp insert

我是Cakephp的新手,我实际上是按照博客教程的教程,但是我没有关注他们的数据库并尝试自己的数据库。 目前我的数据库:

我的模特:

class FypCakephp extends AppModel  {
//Table Name
 public $useTable = 'Report';
 public $primaryKey = 'report_id';}

我的控制器:

  public function add() {
    if ($this->request->is('POST')) {  //Submited the form:takes a single argument, which can be the request METHOD (get, put, post, delete) or some request identifier (ajax). 
        $this->FypCakephp->create();// Create a model 

        // can use the pr() or debug() functions to print it out if you want to see what it looks like.
       echo pr(($this->request->data));
       debug($_POST);


        if ($this->FypCakephp->save($this->request->data)) { //Save to Database and return true. 
            $this->Session->setFlash(__('Your post has been saved.'));
          //  return $this->redirect(array('action' => 'index')); //Redirect to the first page
        }
        $this->Session->setFlash(__('Unable to add your Database.')); //Else will show unable to add 
    }
}

我的观点:

http://gyazo.com/a69dd4cdfcf008b76d5c3dc5392d2009

每次我调试他们都会告诉我这个 http://gyazo.com/7f8f43cbd88aee555aeb6690f33093e0

他们永远拿了0个查询。 当我将日期时间更改为文本类型时。他们也只能插入创建和修改。 我可以知道导致它的原因是什么?

2 个答案:

答案 0 :(得分:1)

@Beginnerk。我看到了上面的代码。形成cakephp的观点,我认为其结构不太好。在初学阶段,请先阅读CakePHP 2.x documentation。然后尝试开发一个基本的crud应用程序。 我给你一个帖子链接。

Creating a CakePHP CRUD Example – Source Code Download and Tutorial

更新 - 1

根据您的代码将datetime保存到数据库中

public function add() {
    if ($this->request->is('POST')) {

      //Submited the form:takes a single argument, which can be the request METHOD (get, put, post, delete) or some request identifier (ajax). 
        $this->FypCakephp->create();// Create a model 
        $data = $this->request->data;

        $updated_date = date('Y-m-d H:m:i', strtotime($data['FypCakephp']['updated_date']));
        $data['FypCakephp']['updated_date'] =  $updated_date;

        // can use the pr() or debug() functions to print it out if you want to see what it looks like.
       echo pr($data);
       debug($_POST);


        if ($this->FypCakephp->save($data)) { //Save to Database and return true. 
            $this->Session->setFlash(__('Your post has been saved.'));
          //  return $this->redirect(array('action' => 'index')); //Redirect to the first page
        }
        $this->Session->setFlash(__('Unable to add your Database.')); //Else will show unable to add 
    }
}

答案 1 :(得分:0)

你的问题在于查看:) 将报告更改为报告。 现在,当您保存$ this-> request->数据时,它会尝试查找报告密钥以便能够保存或报告数据库中的字段。 如果你不想改变它,在控制器中你可以保存$ this-> request-> data ['report']

编辑 此外,如果第一个选项不起作用,请尝试使用FypCakephp而不是视图中的报告。 它必须是你的模型的别名,在你的情况下它是FypCakephp。 保持模型和表格的各种名称也不是一个好主意,并尝试保留cakephp的名称约定(表名报告而不是报告),但它可能有助于理解所有选项:)