"~" có nghĩa là bạn sẽ sử dụng giá trị mặc định hoặc cấu hình mặc định. Trong trường hợp của bạn, hành vi Timestampable, sẽ sử dụng giá trị và cấu hình mặc định. Vì vậy, bạn không cần phải xác định lại chúng.
Từ doc, đây là một số cấu hình:
Timestampable:
created:
name: created_at
type: timestamp
format: Y-m-d H:i:s
updated:
disabled: true
Bạn cũng sẽ tìm thấy điều này "~" (rất nhiều) trong mặc định generator.yml
. Bằng cách này, máy phát điện, thậm chí có sản phẩm nào, sẽ tạo ra một quản trị tốt đẹp:
config:
actions: ~
fields: ~
list: ~
filter: ~
form: ~
edit: ~
new: ~
Đối với câu hỏi thứ hai của bạn, mục tiêu của Timestampable
là cho mỗi thay đổi trên một hàng, lĩnh vực updated_at
sẽ được thiết lập với ngày hiện tại . Vì vậy, bạn không cần phải chăm sóc nó.
Edit:
Và nếu bạn muốn tự cập nhật updated_at
lĩnh vực:
- đầu tiên: bạn sẽ phải vô hiệu hóa hành vi timestampable cho lĩnh vực này (xem ví dụ trên
- thứ hai: bạn sẽ phải tự mình thực hiện hành vi này
Cách dễ nhất là cũ có chức năng preSave
của mô hình của bạn và thực hiện công việc tại đây. Giống như:
class Article extends BaseArticle
{
public function preSave($event)
{
if(array_key_exists("your_field", $this->getModified())
{
$this->setUpdatedAt(time());
}
}
'updated_at' thường được sử dụng để cho biết rằng * bất kỳ * trường nào trên hồ sơ đã được thay đổi. Xem xét việc tạo một trường riêng cho mục đích bạn đã mô tả. –