php – 在Yii2中保存之前
发布时间:2020-12-13 17:54:06 所属栏目:PHP教程 来源:网络整理
导读:我有一个表格,在Yii2中有一个名为“city”形式的多选字段.当我提交表格时 帖子数据显示以下内容: $_POST['city'] = array('0'='City A','1'='City B','2'='City C') 但我想以序列化形式保存数组,如: a:3:{i:0;s:6:"City A";i:1;s:6:"City B";i:2;s:6:"City
我有一个表格,在Yii2中有一个名为“city”形式的多选字段.当我提交表格时
帖子数据显示以下内容: $_POST['city'] = array('0'=>'City A','1'=>'City B','2'=>'City C') 但我想以序列化形式保存数组,如: a:3:{i:0;s:6:"City A";i:1;s:6:"City B";i:2;s:6:"City C";} 但我不知道如何在Yii2中保存功能之前修改数据. Followin是我的代码: if(Yii::$app->request->post()){ $_POST['Adpackage']['Page'] = serialize($_POST['Adpackage']['Page']); $_POST['Adpackage']['fixer_type'] = serialize($_POST['Adpackage']['fixer_type']); } if ($model->load(Yii::$app->request->post()) && $model->save()) { return $this->redirect(['view','id' => $model->id]); } else { return $this->render('create',[ 'model' => $model ]); } 请帮我. 谢谢你的努力.我已经解决了这个问题.这是代码: public function beforeSave($insert) { if (parent::beforeSave($insert)) { $this->Page = serialize($_POST['Adpackage']['Page']); $this->fixer_type = serialize($_POST['Adpackage']['fixer_type']); return true; } else { return false; } } 只需将此代码放入模型及其工作中即可
这是因为Yii :: $app-> request-> post()在此阶段与$_POST不同.尝试将您的代码更改为:
$post = Yii::$app->request->post(); $post['Adpackage']['Page'] = serialize($post['Adpackage']['Page']); $post['Adpackage']['fixer_type'] = serialize($post['Adpackage']['fixer_type']); $model->load($post); 更新: 最好在ActiveRecord beforeSave()方法上执行此操作. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |