我开始只是好奇地使用CakePHP3.0。 为了熟悉CakePHP3.0的新功能,我在官方网站(http://book.cakephp.org/3.0/en/tutorials-and-examples/blog/blog.html)上关注了博客教程。我所做的只是复制和过去的源代码。 一切都很好,除了字段"创建"和#34;修改"没有得救。他们只是保持NULL。我已经确认这个功能在CakePHP 2.4.6中运行良好。下面是博客教程的表定义和函数add()。
CREATE TABLE articles (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(50),
body TEXT,
created DATETIME DEFAULT NULL,
modified DATETIME DEFAULT NULL
);
public function add(){
$article = $this->Articles->newEntity($this->request->data);
if($this->request->is("post")){
if($this->Articles->save($article)){
$this->Session->setFlash("Success!");
return $this->redirect(["action"=>"index"]);
}
$this->Session->setFlash("Fail!");
}
$this->set(compact("article"));
}
答案 0 :(得分:8)
您需要在3.0中添加TimestampBehavior。
https://github.com/cakephp/cakephp/blob/3.0/src/Model/Behavior/TimestampBehavior.php
答案 1 :(得分:0)
在博客教程的第2部分中,您似乎错过了文章模型的创建: http://book.cakephp.org/3.0/en/tutorials-and-examples/blog/part-two.html#create-an-article-model
// src/Model/Table/ArticlesTable.php
namespace App\Model\Table;
use Cake\ORM\Table;
class ArticlesTable extends Table {
public function initialize(array $config) {
$this->addBehavior('Timestamp');
}
}
包含“时间戳”行为是控制这些时间戳字段并使其保持最新的原因。