个人一时兴起发的贴子,不是什么高技术的,主要是针对有层级分类(没有层级就没事啦),请大家不好的地方多给给建议,谢谢!:grin: :grin:
(1、下面两张图分别是---(生成时的样子:以下为“图一”)以及(修改后的样式:以下为“图二”)
(2、个人有点小小的强迫哈!看着图一感觉就是不舒服一堆。图二相对就好多了,层级分明。开始解说盗用过程。
1、我要的效果就是参照就是 category(类型表)里面的 父级id(pid)的效果。所以我要先将页面 盗用过来
<div class="form-group"> <label for="c-pid" class="control-label col-xs-12 col-sm-2">{:__('Pid')}:</label> <div class="col-xs-12 col-sm-8"> <select id="c-pid" data-rule="required" class="form-control selectpicker" name="row[pid]"> {foreach name="parentList" item="vo"} <option data-type="{$vo.type}" value="{$key}" {in name="key" value=""}selected{/in}>{$vo.name}</option> {/foreach} </select> </div></div>
2、先找到现在模块需要进行修改的页面 并找出显示(示例:)
<div class="form-group"> <label class="control-label col-xs-12 col-sm-2">{:__('Category_id')}:</label> <div class="col-xs-12 col-sm-8"> <input id="c-category_id" data-rule="required" data-source="category/selectpage" data-params='{"custom[type]":"nav"}' class="form-control selectpage" name="row[category_id]" type="text" value="{$row.category_id}"> </div></div>
然后对代码进行合并并对:id、name进行修改后如下
<div class="form-group"> <label class="control-label col-xs-12 col-sm-2">{:__('Category_id')}:</label> <!--<div class="col-xs-12 col-sm-8">--> <!--<input id="c-category_id" data-rule="required" data-source="category/selectpage" data-params='{"custom[type]":"nav"}' class="form-control selectpage" name="row[category_id]" type="text" value="">--> <!--</div>--> <div class="col-xs-12 col-sm-8"> <select id="c-category_id" data-rule="required" class="form-control selectpicker" name="row[category_id]"> {foreach name="parentList" item="vo"} <option value="{$key}" {in name="key" value=""}selected{/in}>{$vo.name}</option> {/foreach} </select> </div> </div>
(3、页面修改完成后、对控制器进行修改,从html代码中可以看到分类的数据是的名称是parentList
{foreach name="parentList" item="vo"}
在category(类型表)控制其中可以看到对数据的应用是使用了
$this->model = model('appcommonmodelCategory'); $tree = Tree::instance(); $tree->init(collection($this->model->order('weigh desc,id desc')->select())->toArray(), 'pid'); $this->categorylist = $tree->getTreeList($tree->getTreeArray(0), 'name'); $categorydata = [0 => ['type' => 'all', 'name' => __('None')]]; foreach ($this->categorylist as $k => $v) { $categorydata[$v['id']] = $v; } $this->view->assign("parentList", $categorydata);
开始上面说了我是盗用用过来所有 要满足他自带的一些 数据才可以正常使用,对其修改后的代码
要给引入
use fastTree;
避免冲突
protected $model_cat = null;
然后_initialize(构造函数)代码后面在添加
我在语句添加了几个条件,个人可以按情况修改。
$this->model_cat = model('appcommonmodelCategory'); $tree = Tree::instance(); $tree->init(collection($this->model_cat->order('weigh desc,id desc')->where(array("type"=>"nav","status"=>"normal"))->field(["id","name","type","flag","pid"])->select())->toArray(), 'pid'); $this->categorylist = $tree->getTreeList($tree->getTreeArray(0), 'name'); $categorydata =[]; foreach ($this->categorylist as $k => $v) { $categorydata[$v['id']] = $v; } $this->view->assign("parentList", $categorydata);
至于edit.html 主要多个参数 {in name="key" value="$row.category_id"}selected{/in}
就是添加于option 标签里面 用于修改的 默认 选择原来选择的数据
<option value="{$key}" {in name="key" value="$row.category_id"}selected{/in}>{$vo.name}</option>
(4、最后保存运行就欧克啦!!!
希望以上内容对你有所帮助!如果还有其他问题,请随时提问。 各类知识收集 拥有多年CMS企业建站经验,对 iCMS, Fastadmin, ClassCMS, LeCMS, PbootCMS, PHPCMS, 易优CMS, YzmCMS, 讯睿CMS, 极致CMS, Wordpress, HkCMS, YznCMS, WellCMS, ThinkCMF, 等各类cms的相互转化,程序开发,网站制作,bug修复,程序杀毒,插件定制都可以提供最佳解决方案。