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

大鲸互娱 9月前 697

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

image.png

求助大神!

最新回复 (3)
  • 周大夫 9月前
    感谢TA
    0 引用 2

    预览

    <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下就可以了。

    最后于 9月前 被周大夫编辑
  • sthwrong 9月前
    感谢TA
    0 引用 3

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

  • fankangjia 3月前
    感谢TA
    0 引用 4

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

    最后于 3月前 被fankangjia编辑
  • 未登录
    5
返回