我尝试在Restful API中使用TimestampBehavior创建Yii2,但是当我使用POST端点创建一个新实体时,返回数据非常奇怪。
{
"i18_id": 3,
"language": "es",
"text": "un test de traducción",
"created_at": {
"expression": "NOW()",
"params": [ ]
},
"updated_at": {
"expression": "NOW()",
"params": [ ]
},
"id": 2
}
当我获取实体后,一切看起来都很好。
以下是我在模型中声明行为的方式:
public function behaviors()
{
return [
'timestamp' => [
'class' => 'yii\behaviors\TimestampBehavior',
'attributes' => [
ActiveRecord::EVENT_BEFORE_INSERT => ['created_at', 'updated_at'],
ActiveRecord::EVENT_BEFORE_UPDATE => ['updated_at'],
],
'value' => new Expression('NOW()'),
],
];
}
答案 0 :(得分:0)
答案 1 :(得分:0)
最后,由于@BHoft的建议,我找到了一个很好的解决方案。
主要是我正在使用其余的ActiveController,我的api需要在创建后使用日期格式返回日期,因此date('U')
在我的情况下不起作用,因为它不会返回日期正确的格式。
我所做的是我在模型中添加了afterSave
。
public function afterSave ($insert, $changedAttributes)
{
if ($insert)
$this->refresh();
}