fastadmin如何实现关联表查询

这里需对表fa_setting_employees进行关联,yewu为本表字段,employee_num为fa_setting_employees的字段,通过yewu与employee_num进行关联,需要查询fa_setting_employees表中的employee_name字段

一、在模型中进行关联

位置:application/admin/model/pim/Test.php

通过belongsTo进行关联

①'app\admin\model\setting\Employees':表示关联位置

②'yewu':表示本表的关联字段

③'employee_num':表示关联表的关联字段

表示从FastAdmin应用程序中的当前模型发出一个“yewu”作为外键,关联到“app\admin\model\setting\Employees”模型中的“employee_num”字段,并且使用LEFT JOIN类型查询,同时设置Eagerly Type为0,以确保从当前模型进行懒加载查询
public function employees()//yewu为第一张表的字段,employee_num为第二张表的字段
    {
        return $this->belongsTo('app\admin\model\setting\Employees', 'yewu', 'employee_num', [], 'LEFT')->setEagerlyType(0);
    }

二、对控制器写入关联方法

位置:application/admin/controller/pim/Test.php

详细代码详解部分可参考:https://blog.csdn.net/weixin_46001736/article/details/128615011?spm=1001.2014.3001.5501

/**
 * 查看
 */
public function index()
{
    //当前是否为关联查询
    $this->relationSearch = true;
    //设置过滤方法
    $this->request->filter(['strip_tags', 'trim']);
    if ($this->request->isAjax()) {
        //如果发送的来源是Selectpage,则转发到Selectpage
        if ($this->request->request('keyField')) {
            return $this->selectpage();
        }
        list($where, $sort, $order, $offset, $limit) = $this->buildparams();

        $list = $this->model
                ->with(['employees'])//关联的表
                ->where($where)
                ->order($sort, $order)
                ->paginate($limit);

        foreach ($list as $row) {
            //显示关联表中的employee_name字段
            $row->getRelation('employees')->visible(['employee_name']);
        }

        $result = array("total" => $list->total(), "rows" => $list->items());

        return json($result);
    }
    return $this->view->fetch();
}

三、在js中进行关联数据展示

位置:public/assets/js/backend/pim/test.js

{field: 'employees.employee_name', title: __('关联id')},

在js中的columns中加入需要展示的字段

employees.employee_name:表示在employees表中引用employee_name字段

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
FastAdmin 是一款基于ThinkPHP5框架开发的快速后台开发框架,它提供了快速搭建后台系统的功能,但是在实现抢红包功能方面,需要结合其他的开发技术进行实现。 在具体实现抢红包功能时,可以通过以下步骤: 1. 创建红包表(red_packet)和抢红包记录表(grab_record)。 红包表包括红包ID、红包金额、剩余金额和红包类型等字段,抢红包记录表包括抢红包记录ID、红包ID、用户ID和抢到的金额等字段。 2. 编写抢红包接口。 通过FastAdmin框架提供的快速开发功能,编写一个抢红包的接口。在接口中,首先需要判定红包是否还有剩余金额,若没有则返回抢红包失败信息,若有剩余金额,则先将红包表中的剩余金额减去抢到的金额,并更新红包表。然后将抢红包记录插入抢红包记录表中,记录抢红包的用户ID和抢到的金额等信息。最后返回抢红包成功的信息。 3. 前端页面展示。 在前端页面中,可以通过调用抢红包接口来实现抢红包的功能。用户点击抢红包按钮时,前端发送请求到后台接口,后台进行相应的处理并返回结果给前端页面展示。 需要注意的是,在实现抢红包功能时,还需要考虑并发控制的问题,以防止多个用户同时对同一个红包进行抢夺,导致金额错误或其他问题的发生。可以通过使用锁机制或者分布式锁等方式进行并发控制,确保每次只有一个用户可以成功抢到红包。 综上所述,通过FastAdmin框架,我们可以结合其他技术手段来实现抢红包功能,从而为用户提供更好的使用体验和互动性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值