2014-04-04 12 views
8

Tôi bắt đầu sử dụng CakePHP3.0 chỉ bằng sự tò mò. Để tự làm quen với các tính năng mới của CakePHP3.0, tôi đã làm theo hướng dẫn blog trên trang web chính thức (http://book.cakephp.org/3.0/en/tutorials-and-examples/blog/blog.html). Những gì tôi đã làm chỉ đơn giản là sao chép và quá khứ của mã nguồn ở đó. Mọi thứ hoạt động tốt, EXCEPT FOR fields "created" và "modified" không được lưu. Họ chỉ ở lại NULL. Tôi đã xác nhận rằng tính năng này hoạt động tốt trong CakePHP 2.4.6. Dưới đây là định nghĩa bảng và hàm add() cho hướng dẫn blog.Các trường "được tạo" và "sửa đổi" không được đặt tự động trong CakePHP3.0.0 (xem trước dev 2)

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")); 
} 

Trả lời

0

Trong phần 2 của Blog Hướng dẫn, dường như bạn bỏ lỡ Creation của bài viết mẫu: 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'); 
    } 
} 

Việc đưa hành vi 'Timestamp' là những gì kiểm soát các dấu thời gian và giữ cho chúng được cập nhật.

+0

Điều này phù hợp với tôi, nhiều thông tin hơn: https://book.cakephp.org/3.0/en/tutorials-and-examples/blog/part-two.html –

Các vấn đề liên quan