【发布时间】:2015-07-23 20:44:39
【问题描述】:
Yii 说它可以自动设置时间戳'created_at':http://www.yiiframework.com/doc-2.0/guide-concept-behaviors.html#using-timestampbehavior
但是,每次我创建一个记录,时间都是空白的:
$ yii kw/test
1437683634
mysql> select * from ad_group_keyword_network where ad_group_keyword_id = 1;
+---------------------+-
| created_at |
+---------------------+-
| 0000-00-00 00:00:00 |
| 0000-00-00 00:00:00 |
+---------------------+-
public function actionTest() {
$agkn = new AdGroupKeywordNetwork();
$agkn->save();
echo $agkn->created_at;
我尝试使用 Schema::TYPE_TIMESTAMP 并更改了字段并尝试使用 Schema::TYPE_DATETIME。保存后都在字段中返回整数时间戳,但数据库中时间全为0。
public function behaviors()
{
return [
[
'class' => TimestampBehavior::className(),
'attributes' => [
ActiveRecord::EVENT_BEFORE_INSERT => ['created_at'],
ActiveRecord::EVENT_BEFORE_UPDATE => [],
【问题讨论】:
-
yii timstamps 是 unix 时间戳,您正试图将这些整数填充到 mysql 日期字段中,该字段需要
yyyy-mm-dd hh:mm:ss形式的字符串。由于您的整数不是该格式,因此您会得到全零日期,即“未知/无效”日期。 -
@MarcB 好的。我希望 Yii 会根据字段的类型进行转换。它从未提及所需的类型。猜猜它仍然必须赶上 Rails。