怎么在Yii::$app->request->post()中追加数据 [ 2.0 版本 ]
如题,
$model = $this->findModel($id);
$_POST['Test']['update_time'] = time();
if ($model->load(Yii::$app->request->post()) && $model->save()) {
return $this->redirect(['index']);
}
我想在保存之前加一个更新时间,但是直接修改$_POST
没有用数据库update_time
字段并没有数据。
最佳答案
-
废这些劲干毛。。。。这样不一样吗~
if ($model->load(Yii::$app->request->post())) { $model->update_time = time(); if($model->save()){ return $this->redirect(['index']); } }
共 3 条回复738399315@qq.co 回复于 2016-07-05 12:55 回复正解,3Q
738399315@qq.co 回复于 2016-07-05 14:18 回复@474352380 只是对对象不怎么熟悉
其他 6 个回答
-
$model = $this->findModel($id); $_POST['Test']['update_time'] = time(); Yii::$app->request->setBodyParams($_POST); // here if ($model->load(Yii::$app->request->post()) && $model->save()) { return $this->redirect(['index']); }
共 1 条回复738399315@qq.co 回复于 2016-07-05 11:44 回复$model = $this->findModel($id);
$_POST['Test_cat']['update_time'] = time(); Yii::$app->request->setBodyParams($_POST); if ($model->load(Yii::$app->request->post()) && $model->save()) { return $this->redirect(['index']); }
没有用,数据库还是没
-
不是有behaviors自动更新时间么?
public function behaviors() { return [ [ 'class' => TimestampBehavior::className(), 'createdAtAttribute' => 'created_at', 'updatedAtAttribute' => 'updated_at', 'value' => new Expression('NOW()'), ], ]; }
共 1 条回复 -
请教个问题:
Yii2 updateAll方法,如果一条数据存在包含多个Object的数组,$set object的值,只修改第一条,怎么让所有满足条件的object对应值都修改?{
"_id" : ObjectId("57b3044030901c656b8b456a"), "props" : [ { "id" : ObjectId("57a46bd830901cd0688b4569"), "ruleId" : ObjectId("57a46bcd30901cd0688b4568"), "name" : "like", "type" : "single" }, { "id" : ObjectId("57a46bd234901cd0688b4278"), "ruleId" : ObjectId("57a46bcd30901cd0688b4568"), "name" : "like", "type" : "double" }, { ... ... } ]
}
上面是我的数据库格式return self::updateAll( ['$set' => [ 'props.$.name' => 'name', 'goods.$.type' => '123' ] ], [ 'props.ruleId' => new MongoId("57a46bcd30901cd0688b4568") ] );
我要修改props满足条件的所有数据,但是只会更改第一条
-
按照MVC来说,更新时间属于M的,建议放在Model里,最后就是使用befereSave()方法就可以保存好了,如下
public function beforeSave($insert){if(parent::beforeSave($insert)){ if($insert){ $this->created_at = time(); $this->updated_at = time(); }else{ $this->updated_at = time(); } return true; }else{ return false; } }
共 1 条回复菜鸟鼻涕 觉得很赞
738399315@qq.co 东莞
注册时间:2016-01-04
最后登录:2016-12-20
在线时长:7小时7分
最后登录:2016-12-20
在线时长:7小时7分
- 粉丝0
- 金钱35
- 威望0
- 积分105