fastadmin列表页展示分类名称通用搜索按分类名称搜索

test控制器中添加

/**
     * 查看
     *
     * @return string|Json
     * @throws \think\Exception
     * @throws DbException
     */
    public function index()
    {
        $this->relationSearch = true;

        //设置过滤方法
        $this->request->filter(['strip_tags', 'trim']);
        if (false === $this->request->isAjax()) {
            return $this->view->fetch();
        }
        //如果发送的来源是 Selectpage,则转发到 Selectpage
        if ($this->request->request('keyField')) {
            return $this->selectpage();
        }
        [$where, $sort, $order, $offset, $limit] = $this->buildparams();

        $list = $this->model
            ->with("category")
            ->field('test.*,category.name as category_id')
            ->where($where)
            ->order($sort, $order)
            ->paginate($limit);

        $result = ['total' => $list->total(), 'rows' => $list->items()];
        return json($result);
    }

    public function searchlist()
    {
        $categoryList = collection(\app\common\model\Category::where(['status'=>'normal'])->select())->toArray();
        \fast\Tree::instance()->init($categoryList);
        $searchlist = [];
        $result = \fast\Tree::instance()->getTreeList(\fast\Tree::instance()->getTreeArray(0));
        foreach ($result as $k => $v) {
            $searchlist[] = ['id' => $v['id'], 'name' => $v['name']];
        }
        return json($searchlist);
    }

test的model中添加

public function category()
    {
        return $this->belongsTo('\app\admin\model\Category', 'category_id')->setEagerlyType(0);
    }

在model中添加分类模型 Category.php

<?php

namespace app\admin\model;

use think\Model;

class Category extends Model
{

    // 表名
    protected $name = 'category';
    // 自动写入时间戳字段
    protected $autoWriteTimestamp = 'int';
    // 定义时间戳字段名
    protected $createTime = 'createtime';
    protected $updateTime = 'updatetime';
    // 追加属性
    protected $append = [
        'status_text'
    ];

    public function getStatusList()
    {
        return ['normal' => __('Normal'), 'hidden' => __('Hidden')];
    }

    public function getStatusTextAttr($value, $data)
    {
        $value = $value ? $value : $data['status'];
        $list = $this->getStatusList();
        return isset($list[$value]) ? $list[$value] : '';
    }

}

test的js中添加

{field: 'category_id', title: __('Category_id'),searchList:$.getJSON("/JLqcEmZpeT.php/test/test/searchlist")},

展示效果

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

withoutfear

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值