FastAdmin后台系统配置使用多维数组

FastAdmin后台系统配置,可以添加键值对,也就是类型为"数组"的配置,但这种配置只有两个输入框,即key和value,不支持多维数组。

如果要使用多维数组,即有多个输入框的配置,需要自己改造一下。

步骤如下:

  1. 首先在application/common/model/Config.php的第56行'array' => __('Array'), 下面添加一行
'arraylist'     => __('多维数组'),
  1. 改写application/admin/view/general/config.html页面,找到case array代码块儿,在它下面添加
{case arraylist}
<table class="table fieldlist" data-template="basictpl" data-name="row[{$item.name}]" id="first-table">
    <tr>
        <td>{:__('时长(月)')}</td>
        <td>{:__('时长说明')}</td>
        <td>{:__('价格(元)')}</td>
        <td>{:__('价格说明')}</td>
        <td width="100px">操作</td>
    </tr>
    <tr>
        <td colspan="5"><a href="javascript:;" class="btn btn-sm btn-success btn-append"><i class="fa fa-plus"></i> {:__('Append')}</a></td>
    </tr>
</table>

<!--请注意实际开发中textarea应该添加个hidden进行隐藏-->
<textarea name="row[{$item.name}]" class="form-control hide" cols="30" rows="5">{$item.value|htmlentities}</textarea>
<script id="basictpl" type="text/html">
    <tr class="form-inline">
        <td><input type="text" name="<%=name%>[<%=index%>][month]" class="form-control" size="3" value="<%=row.month%>" placeholder="时长(月)"/></td>
        <td><input type="text" name="<%=name%>[<%=index%>][month_remark]" class="form-control" style="width:80px" value="<%=row.month_remark%>" placeholder="时长说明"/></td>
        <td><input type="text" name="<%=name%>[<%=index%>][price]" class="form-control" size="5" value="<%=row.price%>" placeholder="价格"/></td>
        <td><input type="text" name="<%=name%>[<%=index%>][price_remark]" class="form-control" style="width:150px" value="<%=row.price_remark%>" placeholder="价格说明"/></td>
        <td width="100px">
            <!--下面的两个按钮务必保留-->
            <span class="btn btn-sm btn-danger btn-remove"><i class="fa fa-times"></i></span>
            <span class="btn btn-sm btn-primary btn-dragsort"><i class="fa fa-arrows"></i></span>
        </td>
    </tr>
</script>
{/case}

我这里是定义了4个键。

  1. 添加配置时选择类型为多维数组的就可以了。

Leave a Comment

豫ICP备19001387号-1