侯体宗的博客
  • 首页
  • Hyperf2.1版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

laravel-admin表单提交两级联动功能编写

Laravel  /  管理员 发布于 2年前   3071

laravel-admin表单提交两级联动功能编写;

控制器:

1.

namespace App\Admin\Controllers;
use App\Http\Controllers\Controller;
use App\Models\SelectOption;
use App\Models\ProductCreditCard;
use App\Models\Top;
use Encore\Admin\Controllers\HasResourceActions;
use Encore\Admin\Form;
use Encore\Admin\Grid;
use Encore\Admin\Layout\Content;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;

2.

public function form()
{
    $form = new Form(new Top());
    //这里就是我的两级联动
    $form->select('bankid','银行')->options(
        SelectOption::companycreditcards()
    )->load('cid', '/api/top/cid');//选中传入接口一个q参数,加载到第二级
    //加上需options不然编辑页不会选中
    $form->select('cid','信用卡')->options(function ($id) {
        return  ProductCreditCard::where('id',$id)->pluck('name', 'id');
    });

    $form->select('ctype','类别')->options(SelectOption::categoryOps([1591,1599,1608,1621]));
    $form->display('created_at');
    $form->display('updated_at');
    //$form->switch('status', '状态')->states($this->states);
    return $form;
}

3.加载的接口(我也写在这个控制器里面--->需写路由过来)

public function cid(Request $request)
{
    $id = $request->get('q');
    return ProductCreditCard::where('CompanyID', $id)->get(['id', DB::raw('name as text')]);
}

路由:

//选中加载返回数据
$router->get('api/top/cid', 'TopController@cid');

看看效果:

image.png


针对评论留言中@lin的问题:第二级分类编辑如果要想选择该父类下的其他子类

稍作修改代码如下:

$form->select('bankid','银行')->options(
   SelectOption::companycreditcards()
)->load('cid', '/api/top/cid');
$form->select('cid','信用卡')->options(function () {
   //获取父类id
   $fid = $this -> bankid;
   //查询出父类下的所有子类
   $return = ProductCreditCard::where('CompanyID',$fid)->pluck('name', 'id');
   return $returm;

});



  • 上一条:
    centos7定时执行脚本编写某时间自动备份mysql数据库到指定文件夹
    下一条:
    laravel中DB操作转MOdels操作查询表数据区别
  • 昵称:

    邮箱:

    2条评论 (评论内容有缓存机制,请悉知!)
    最新最热

    @lin | 感谢你的留言,思路:根据上级分类的id查询出该类的子类,代码我会写在正文中

    博主  2020-08-21 14:16:38 赞 (0)

    你好,请问修改的时候,我要切换一级,二级选项不能更新了,你这个有解决吗?

    lin  2020-08-20 11:57:56 赞 (3)
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • TP(3/5)
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • Laravel 9.13版本发布(0个评论)
    • Laravel角色和权限:拦截器Gates和策略Policies的解释(0个评论)
    • Laravel 9.12版本发布(0个评论)
    • laravel8框架集成RabbitMQ队列驱动程序(0个评论)
    • laravel框架应用拦截器:Laravel Gates(0个评论)
    • 近期文章
    • Laravel 9.13版本发布(0个评论)
    • beego+GeoLite2免费数据库获取ip地址经纬度等定位归属信息(0个评论)
    • redis安全配置之修改端口、添加密码流程步骤及启动使用(0个评论)
    • PHP + Memcache实现简单的统计当前在线人数功能(0个评论)
    • Thinkphp5.1框架中实现Session+Redis会话共享流程步骤(0个评论)
    • go语言中使用Signbit()函数判断一个整数是正数或负数(0个评论)
    • 删库跑路之一链家程序员删除公司9TB数据被判7年,望各大码农警之!(0个评论)
    • Laravel角色和权限:拦截器Gates和策略Policies的解释(0个评论)
    • Laravel 9.12版本发布(0个评论)
    • go语言中实现把数据写入文件函数WriteFile()编写(0个评论)
    • 近期评论
    • 博主 在

      hyperf框架常用命令-在centos7中退出命令及在docker容器中退出命令中评论 @路过的靓仔:cdn静态资源被墙,已修复..
    • GGGGGGGGG 在

      layui框架常用输入框介绍中评论 写的很好解决问题..
    • 路过的靓仔 在

      hyperf框架常用命令-在centos7中退出命令及在docker容器中退出命令中评论 剩下好多 wait 状态的..
    • 激光豆芽 在

      为什么你不能安逸?国内996为什么没有国外955香?中评论 国内现在无意义的内卷太多了..
    • 激光豆芽 在

      阿里云香港服务器搭建自用vpn:Shadowsocks使用流程步骤中评论 厉害了..
    • 2016-10
    • 2016-11
    • 2017-07
    • 2017-08
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2020-07
    • 2020-08
    • 2020-09
    • 2020-10
    • 2020-11
    • 2021-01
    • 2021-02
    • 2021-03
    • 2021-04
    • 2021-05
    • 2021-06
    • 2021-07
    • 2021-08
    • 2021-09
    • 2021-10
    • 2021-11
    • 2021-12
    • 2022-01
    • 2022-02
    • 2022-03
    • 2022-04
    • 2022-05
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客