2010-12-13 9 views
7

Có cách nào để định cấu hình các mô hình CakePHP để tự động đặt dấu thời gian, chẳng hạn như created_onupdated_on, khi lưu đối tượng?CakePHP: mô hình tự động tạo và cập nhật ngày

Tôi đang nghĩ đến việc tương đương với Django DateTimeField của auto_nowauto_now_add tùy chọn.

Tôi đã nghe điều này là một thực tế gây tranh cãi trong một số khung công tác, nhưng tôi vẫn muốn làm điều đó.

Nếu bạn không thể làm điều này, mọi người thường đặt dấu thời gian trong trình xử lý beforeSave(), có lẽ bằng cách kiểm tra xem dữ liệu mô hình đã có trường id chưa và thiết lập dữ liệu tạo sao cho phù hợp?

Cảm ơn và xin lỗi nếu tôi đã bỏ lỡ bit liên quan trong tài liệu.

+0

Cảm ơn mọi người, 'được tạo' và 'được cập nhật' là tên trường ma thuật. Tất cả đều làm việc tốt ngay bây giờ. – Mikesname

Trả lời

12

Có, CakePHP thực hiện điều này một cách tự động cho các trường createdmodified.

Trong MySQL, loại cho các trường này phải là DATETIME (hoặc DATE) và NULLable.

0

Thực tế, sử dụng "now()" để cập nhật datetime trong mysql rất đơn giản và dễ dàng.

$updateField = array('last_login'=>'now()');