[英]YII2 Restful post and TimestampBehavior
我試圖在我的Restful API創建的Yii2中使用TimestampBehavior,但是當我使用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()'),
],
];
}
我正在使用此值:
'value' => function() { return date('U'); },
所以終於有了@BHoft的建議,我找到了一個很好的解決方案。
主要是我使用其余的ActiveController,並且我的api需要在創建后使用日期格式返回日期,因此date('U')
在我的情況下不起作用,因為它未以正確的格式返回日期。
我所做的是我在模型中添加了afterSave
。
public function afterSave ($insert, $changedAttributes)
{
if ($insert)
$this->refresh();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.