FastAdmin后台系统配置,可以添加键值对,也就是类型为"数组"的配置,但这种配置只有两个输入框,即key和value,不支持多维数组。
如果要使用多维数组,即有多个输入框的配置,需要自己改造一下。
步骤如下:
- 首先在
application/common/model/Config.php
的第56行'array' => __('Array'),
下面添加一行
'arraylist' => __('多维数组'),
- 改写
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个键。
- 添加配置时选择类型为
多维数组
的就可以了。