首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >symfony: actAs:{ Timestampable:~}

symfony: actAs:{ Timestampable:~}
EN

Stack Overflow用户
提问于 2012-04-27 02:37:46
回答 1查看 3.9K关注 0票数 5

我有两个小问题:

代码语言:javascript
复制
actAs: { Timestampable: ~ }

上面的代码中的"~“是什么意思?

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

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-27 03:14:27

"~“表示您将使用默认值或默认配置。在您的示例中,行为Timestampable将使用默认值和配置。因此,您不必重新定义它们。

下面是文档中的一些配置:

代码语言:javascript
复制
Timestampable:
  created:
    name: created_at
    type: timestamp
    format: Y-m-d H:i:s
  updated:
    disabled: true

你也会在默认的generator.yml中找到这个"~“(很多)。这样,生成器,即使是空的,也会生成一个很好的admin:

代码语言:javascript
复制
config:
  actions: ~
  fields:  ~
  list:    ~
  filter:  ~
  form:    ~
  edit:    ~
  new:     ~

对于您的第二个问题,Timestampable的目标是针对行上的每个修改,字段updated_at将设置为当前日期。所以你不需要打理它。

编辑:

如果您想手动更新updated_at字段:

  • first:您必须禁用此字段的可时间戳行为(请参阅示例,您将必须自己完成此行为。

最简单的方法是扩展模型的preSave函数,然后在这里完成这项工作。像这样:

代码语言:javascript
复制
class Article extends BaseArticle
{
  public function preSave($event)
  {
    if(array_key_exists("your_field", $this->getModified())
    {
      $this->setUpdatedAt(time());
    }
  }
票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10339398

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档