我有两个小问题:

actAs: { Timestampable: ~ }

上面的代码中的“〜”是什么意思?

然后,我看到带有actAs: { Timestampable: ~ }的表具有两个字段(created_at和updated_at)。

是否可以将updated_at字段绑定(bind)到特定字段(我先更新此字段,然后updated_at获得新值)?

最佳答案

“〜”表示您将使用默认值或默认配置。在您的情况下,行为Timestampable将使用默认值和配置。因此,您不必重新定义它们。

在文档中,这是一些配置:

Timestampable:
  created:
    name: created_at
    type: timestamp
    format: Y-m-d H:i:s
  updated:
    disabled: true

您还会在默认的generator.yml中找到这个“〜”(很多)。这样,生成器,即使是空的,也会生成一个不错的管理员:
config:
  actions: ~
  fields:  ~
  list:    ~
  filter:  ~
  form:    ~
  edit:    ~
  new:     ~

对于第二个问题,Timestampable的目标是针对一行中的每次修改,updated_at字段将设置为当前日期。因此,您无需照顾它。

编辑:

如果要手动更新updated_at字段,请执行以下操作:

首先
  • :您将必须禁用此字段的时间戳行为(请参见上面的示例
  • 第二:您将必须自己执行行为。

  • 最简单的方法是扩展模型的preSave函数并在此处完成工作。喜欢:
    class Article extends BaseArticle
    {
      public function preSave($event)
      {
        if(array_key_exists("your_field", $this->getModified())
        {
          $this->setUpdatedAt(time());
        }
      }
    

    10-08 07:54