php – 在Yii2中保存之前

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 在Yii2中保存之前脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个表格,在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()方法上执行此操作.

脚本宝典总结

以上是脚本宝典为你收集整理的php – 在Yii2中保存之前全部内容,希望文章能够帮你解决php – 在Yii2中保存之前所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。