谁一开始就是大神?

YII2接收序列化的数组[2.0]

下面的是POST接收到的数据

Array
(
    [_csrf] => MWhSQ3N3M0MGDgsoHz5jdW4mBwhHOUAuWiYHNkAtcRMGIBEFAiFsMw==
    [Dynamic] => Array
    (
        [type] => 1
        [title] => 这是标题
        [images] => Array
            (
                [0] => http://f.cloud.com/143401345875600900.jpg
                [1] => http://f.cloud.com/143401345242854600.jpg
                [2] => http://f.cloud.com/143401345054916700.jpg
                [3] => http://f.cloud.com/143401345542255100.jpg
            )

        [content] => 这是内容
        [url] => 
    )

) 

这个是action的代码

public function actionUpdate($id)
{
    $model = $this->findModel($id);

    if ($model->load(Yii::$app->request->post()) && $model->save()) {
        return $this->redirect(['view', 'id' => $model->id]);
    } else {
        return $this->render('update', [
            'model' => $model,
        ]);
    }
}

images 是 text 类型,需要储存多张图片。
问题是:YII2 有没有自动序列化的功能并且储存到字段

如果没有怎么将序列化后的images赋值给POST

群里的回答:
程涛:
1 是写在rule里
2 写在beforsave

我来了,正如我轻轻的来,不带走一片云彩。
$model->load(Yii::$app->request->post()) && $model->save()
这么写直接就是将post的值直接就存入了数据库,说好的$model->validate();进行安全过滤呢?
虽然在save前会自动进行参数合法性过滤的。
对于rules规则自动过滤法则还没研究透,但有一个场景是肯定的,那就是对要存储的值设定个默认值,比如会员的开启状态,在会员注册场景的时候在rules规则里面进行某字段比如 status,将其设定为1。这个在rules规则里面设定毫无疑问。
就楼主的需求来看,个人感觉是,完全可以写在控制器里面了。
看完了另外一个问题才看到该问题,就顺便回答了。
希望解决你的问题!
我是鬼鬼,鬼一浪人是也!20150612
虽然我不会但是我来看一下
重写afterValidate()方法应该可以做到
这样也可以。
save() 方法保存之前,你先用一个分隔符号拆分 images 属性不就好了吗?
model里的beforeSave($insert)用过么?骚年
个人对于这种数据的分割合并处理,都是卸载beforeSave里头的。不在action里头处理这些。
好高深的样子,涨姿势了
都说这么高深,那还让小白怎么活,帖出来beforeSave 如何解决的
版主,你这个问题怎么解决的哈,遇到跟你类似的问题了,求指点

赞(0) 打赏
未经允许不得转载:菜鸟之家 » YII2接收序列化的数组[2.0]

评论 抢沙发

登录

找回密码

注册