首页 > 解决方案 > CakePHP 4 如何将日期字段 created_at 分配给 created

问题描述

我有一张名为 products 的表。在产品表中,我有 2 个字段created_atupdate_at. 我不想将其更改为createdand modified

在不更改表字段名称的情况下,如何分配创建的 created_at 字段以获取 cakephp 时间助手自动更新日期?

我在下面尝试过的实体

protected $_accessible = [
        'created_at' => $this->created,
        'updated_at' => $this->modified,
];

得到错误。

标签: cakephpcakephp-4.x

解决方案


阅读手册。https://book.cakephp.org/4/en/orm/behaviors/timestamp.html#basic-usage

如果您需要修改具有不同名称的字段,或者想要更新自定义事件上的其他时间戳字段,您可以使用一些额外的配置:

class OrdersTable extends Table
{
    public function initialize(array $config): void
    {
        $this->addBehavior('Timestamp', [
            'events' => [
                'Model.beforeSave' => [
                    'created_at' => 'new',
                    'updated_at' => 'always',
                ],
                'Orders.completed' => [
                    'completed_at' => 'always'
                ]
            ]
        ]);
    }
}

推荐阅读