fastadmin ,表格筛选,多表关联字段相同冲突

7 篇文章 0 订阅
3 篇文章 0 订阅

1、封装转换方法

    /*
    * 修改筛选请求字段名称
    * @param String $old 请求的字段名称
    * @param String $new 需要修改的字段名称
    */
    public function changeName($old, $new)
    {
        $f = json_decode($_GET['filter'], true);
        // @符屏蔽错误,偷懒没写验证
        @$s = $f[$old];

        $res = [];
        if ($s != '') {
            unset($f[$old]);
            $f[$new] = $s;
            $_GET['filter'] = json_encode($f);
        }

        $res["filter"] = json_encode($f);

        $f = json_decode($_GET['op'], true);
        @$s = $f[$old];

        if ($s != '') {
            unset($f[$old]);
            $f[$new] = $s;
            $_GET['op'] = json_encode($f);
        }

        $res["op"] = json_encode($f);
        $this->request->get($res);
    }

2、代码调用

 //如果发送的来源是Selectpage,则转发到Selectpage
            if ($this->request->request('keyField')) {
                return $this->selectpage();
            }

            // 此处将筛选请求中有争议的字段"name"指定为tableA中的name
            $this->changeName("match_id", "zp_match_spot_repair.match_id");


            list($where, $sort, $order, $offset, $limit) = $this->buildparams();
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
如果在FastAdmin框架中,原表的字段已经是关联的其他表的ID号,而你想要再次关联字段以显示为名称,你可以使用模型关联的功能来实现。 以下是一些步骤来实现在FastAdmin框架中重新关联字段并显示为名称: 1. 确保你已经按照FastAdmin框架的要求搭建好项目,并且已经创建了相关的模型和数据表。 2. 在原模型对应的模型文件中,使用`belongsTo`或`hasOne`方法来定义与另一个表的关联关系。例如,如果你的原表模型为`Gongcheng`,关联的表模型为`GongchengName`,则可以在`Gongcheng`模型文件中添加以下方法: ```php public function gongchengName() { return $this->belongsTo('GongchengName', 'gongcheng_name_id', 'id'); } ``` 这样就定义了一个与`GongchengName`模型的关联关系。 3. 在需要显示名称的地方,可以通过访问关联模型的属性来获取名称。例如,假设你在控制器的某个方法中获取了`Gongcheng`模型的实例,你可以通过以下代码来获取关联表的名称: ```php $gongcheng = Gongcheng::find($id); $name = $gongcheng->gongchengName->name; ``` 这样,`$name`变量将包含关联表的名称。 通过以上步骤,你可以在FastAdmin框架中重新关联原表字段,并将其显示为名称。请注意,具体的模型和表名称可能因你的应用程序而有所不同,以上示例仅供参考。你需要根据自己的实际情况进行相应的修改和调整。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值