我是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/7f8f43cbd88aee555aeb6690f33093e0
他们永远拿了0个查询。 当我将日期时间更改为文本类型时。他们也只能插入创建和修改。 我可以知道导致它的原因是什么?
答案 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的名称约定(表名报告而不是报告),但它可能有助于理解所有选项:)