Laravel-admin 学习笔记之一:select 联动菜单进行筛选数据

刚使用Laravel不久,一直在努力学习,总想着写些学习笔记,但是一直都没有时间整理,今天做一个省市的二级联动(当然有可用的扩展,如china-distpicker,但是不太适用,因此自己做一个),过程中遇到了一些坑,在此记录下来。

一开始没头绪,于是搜索,终于找到了相关的资料:laravel-admin 中列表筛选,不过里面没有详细的说明,以致于我掉坑里面了。以下是我的代码:

$filter->equal('pid', '省份')->select(Region::provinceOptions())->load('cid', '/admin/region/cities');
$filter->equal('cid', '市级')->select(route('region.cities', 'q='.$pid));

其中 ‘/admin/region/cities’ 对应的就是路由:route(‘region.cities’, ‘q=’.$pid),参数 q 对应的是省份ID。

public function citiesFromPid(Request $request){
    $pid = $request->get('q');  // 参数必须用 “q”
    // get 里面的两个参数必须是 text 和 id!!!
    return Region::ofPid($pid)->ofLevel(2)->get(['name as text', 'area_id as id']);
}

掉坑主要是上面的代码:
1)参数“q”,这个是固定的不能修改,开始我一直使用 pid,然后一直都有问题……
2)这个更坑,参数固定是 text 和 id了,我刚开始留意到 “name as text”,但是没注意到 id 也是固定的!我一直使用自己的 area_id,然后就一直有问题……

首先声明,我使用Laravel不久,小白一名!我写这文章的目的一是写笔记,加深理解。二是希望能对一些刚入门、经验不足的朋友做一些参考。还有就是第一次写文章,写的不好,见笑了!

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 6

搜索结束了 好像原来选中的值不见了

3年前 评论

这里的$pid哪里来的呢?求q=$pid这里pid定义在哪里。。。

3年前 评论

@yesr pid 是区域表的字段,指的是 省份ID,cid 是城市ID

3年前 评论

@夜游人 $pid变量怎么来的,从哪里定义的

2年前 评论

纯属瞎写,pid都没定义

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!