dact-admin表格选择器的使用

dact-admin表格选择器的使用

  1. 使用场景

           在使用dact下拉选择框时,如果选择框的数据很多几百条,这样在使用普通的选择框时就会很不友好,在dact-admin里面有一种表格选择器的东西,可以很好的解决这个问题。

     2.效果图

 

 

 

       想要实现上面的效果呢,其实也是很简单的。

3.首先创建异步加载类如下图

 

  1. 4.控制器中的写法

 

use App\Admin\Renderable\UserTable;

use App\Models\Userinfo;

protected function form()

{

return Form::make(new UserinfoImage(), function (Form $form) {

$form->display('id');

$form->selectTable('userinfo_id','用户')

->title('用户信息') //设备弹框的标题

->dialogWidth('50%') //设置弹框的宽度

->from(UserTable::make()) //设置渲染类实例,并支持自定义传递自定义参数如->from(UserTable::make(['id' => $form->getKey()])) //查询当前行的id

->model(Userinfo::class, 'id','wx_nickname'); // 设置编辑数据的显示

$form->image('image_path')->uniqueName()->autoUpload()

->accept( 'jpg,png,gif,jpeg' , 'image/*' );

$form->select('platform','所属平台')->options(config('myconfig.config.platform'));

$form->display('created_at');

$form->display('updated_at');

});

}

5.加载类中的写法

 

<?php

namespace App\Admin\Renderable;

use App\Models\Userinfo as UserinfoModels;

use Dcat\Admin\Grid;

use Dcat\Admin\Grid\LazyRenderable;

class UserTable extends LazyRenderable

{

public function grid(): Grid

{

// 获取外部传递的参数

$id = $this->id;

return Grid::make(new UserinfoModels(), function (Grid $grid) {

$grid->column('id');

$grid->column('wx_nickname','用户微信昵称');

$grid->column('created_at');

$grid->column('updated_at');

//指定行选择器选中时显示的值的字段名称

$grid->rowSelector()->titleColumn('wx_nickname');

//下面这个目前不太清除 注释掉也能使用(不知道有什么具体的作用)

$grid->quickSearch(['id', 'wx_nickname']);

$grid->paginate(10); //每页十条数据

$grid->disableActions(); //禁止操作

//设置筛选

$grid->filter(function (Grid\Filter $filter) {

$filter->like('wx_nickname','微信用户昵称')->width(4);

});

});

}

}

6.到此结束,一定要注意加载类的引入以及命名空间的写法。多选和单选的原理都是一样的只不过是把selectTable换成multipleSelectTable。

7.注意:单选和多选不能使用同一个加载类,不然多选就会失效。

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值