请问如何添加json数组到数据库呢?

我参照后台系统配置-字典配置里面的方法进行尝试,只能够存单一对象到mysql里面,如何实现多对象的json数据存储呢?

image.png

求助大神!

查看更多

关注者
0
被浏览
881
3 个回答
周大夫
周大夫 2018-05-17
这家伙很懒,什么也没写!

预览

<div class="col-xs-12 col-sm-10">
                                    <dl class="fieldlist1" rel="{$site.appendreward|count}" data-name="appendreward">
                                        {php}$i=0;{/php}
                                        {foreach $site.appendreward as $mini => $max}
                                        {php}$i++;{/php}
                                        <dd class="form-inline">
                                            <div class="row">
                                                <div class="input-group col-xs-9">
                                                    <div class="input-group-addon">充值</div>
                                                    <input type="number" class="form-control" name="appendreward[{$i}][mini]" value="{$mini}">
                                                    <div class="input-group-addon">-</div>
                                                    <input type="number" class="form-control" name="appendreward[{$i}][max]" value="{$max}">
                                                    <div class="input-group-addon">元,奖励</div>
                                                    <input type="number" class="form-control" name="appendreward[{$i}][ratio]" value="0">
                                                    <div class="input-group-addon">%</div>
                                                    <div class="input-group-addon btn btn-sm btn-danger btn-remove"><i class="fa fa-times"></i></div>
                                                </div>
                                            </div>
                                        </dd>
                                        {/foreach}
                                        <dd><a href="javascript:;" class="append btn btn-sm btn-success" style="margin-left:-15px"><i class="fa fa-plus"></i></a></dd>
                                    </dl>
                                </div>

关键在于字段名称,上面的代码
关键位置 rel="{$site.appendreward|count}"
关键位置 data-name="appendreward"
关键位置 name="appendreward{$i}"
关键位置 name="appendreward{$i}"
关键位置 name="appendreward{$i}"

后台取数据
$appendreward = $this->request->post('appendreward/a');

$appendreward内容是数组,json_encode($appendreward)转成JSON是

[{"mini":"10","max":"49","ratio":"0"},{"mini":"50","max":"99","ratio":"0"},{"mini":"100","max":"199","ratio":"0"},{"mini":"200","max":"499","ratio":"0"},{"mini":"500","max":"999","ratio":"0"},{"mini":"1000","max":"10000","ratio":"0"}]

存字符串进数据库,取出来的时候转化1下就可以了。

sthwrong
sthwrong 2018-05-17
这家伙很懒,什么也没写!

如果是模型处理,可以设置模型属性protected $type = ['字段名'=>'json']。则调用模型数据时会自动进行json转化。

fankangjia
fankangjia 2018-11-21
这家伙很懒,什么也没写!

@周大夫 麻烦可以说一下怎么保存到数据库的吗?就是每一行对应数据库里一行那样怎么添加进去呢?

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览