首页 > 其他分享 >fastadmin 关联预载入查询

fastadmin 关联预载入查询

时间:2023-10-09 09:35:23浏览次数:36  
标签:查询 关联 载入 user fastadmin query setEagerlyType

1、以下两种情况中,关联预载入两个表时,想要约束查询字段。thinkphp5.0中的方法失效,需要用以下方法withField,没有时间去研究具体的原因。

->with(['user'=>function($query){$query->field('id,username,nickname,prevtime,logintime,jointime');},'communityowner'])  //无效
 
 
->with(['user'=>function($query){$query->withField('username,nickname,prevtime,logintime,jointime');},'communityowner'])  //有效

  

2、注意"相对关联"中的$this->belongsTo的方法,

A、在一对一、一对多的查询中是定义在被关联的表中,如user->profile 就是定义在profile的model中。

B、而关联预载入(有::with())则是定义在user的model中

3、其它思考:我感觉像复杂的关联,预载入,应该让开发者自己去实现,复杂的业务只会把框架整懵,暴露出框架的很多问题,而自己也深陷其中不知道怎么回事,感觉再牛逼的程序也经不住超复杂的业务。不要随便指定字段 会破坏关联数据的查询的

4、setEagerlyType(1)及setEagerlyType(0) 是关联预载入的方法。setEagerlyType(0)表示JOIN方式(一次查询)。setEagerlyType(1)表示 1 是 IN 方式(一次查询)

// setEagerlyType(0) 设置预载入方式  2个值  0  是 JOIN方式   1  是 IN 方式

标签:查询,关联,载入,user,fastadmin,query,setEagerlyType
From: https://www.cnblogs.com/web928943/p/17750724.html

相关文章

  • fastadmin 关联预载入限制关联表的字段的显示:$v->hidden(['roominfo'=>['builtup_area
    publicfunctionindex(){//设置过滤方法$this->request->filter(['strip_tags','trim']);if($this->request->isAjax()){//如果发送的来源是Selectpage,则转发到Selectpageif($this->reques......
  • shell 实现harbor 指定仓库镜像tags 查询
    1.需求背景1.1容器发布ci成功以后我们希望CD时候可以选择相关镜像1.2统计指定仓库镜像有多少个版本2.shell代码#!/bin/bash#harbor关键环境变量HARBOR_URL=""USERNAME=""PASSWORD=""PAGE_SIZE=50imges_head=$(echo"$HARBOR_URL"|awk-F//'{print$2}')pr......
  • 慢查询日志图形化
    前置工作1.关闭selinuxsetenforce0sed-i's/enforcing/disabled/g'/etc/sysconfig/selinux2.打开防火墙的443,13306,80端口iptables-IINPUT-ptcp--dport443-jACCEPTiptables-IINPUT-ptcp--dport80-jACCEPTiptables-IINPUT-ptcp--dport13306-jA......
  • es针对nested类型数据无法进行过滤查询的问题记录
    问题描述es中存在有一个名为task_data_1的索引,其字段映射关系如下所示:{"task_data_1":{"mappings":{"dynamic_templates":[{"dates":{"match_mapping_type":......
  • 关于DATE_SUB的sql查询执行慢的优化
    背景:      因为订单表是分表的,需要每天定时从不同订单表里获取7天前到当前时间的数据。归档到一个表中进行统计分析之类的计算。因为每张表数据量比较大(千万级的数据),ORDER_CREATE_TIME是创建了索引的。ORDER_CREATE_TIME的type是datetime类型,通过ORDER_CREATE_TIM......
  • mybatisplus通过某个字段查询数据
    在MyBatisPlus中,你可以通过使用eq方法来通过某个字段查询数据。下面是一个示例代码:importcom.baomidou.mybatisplus.core.conditions.query.QueryWrapper;importcom.baomidou.mybatisplus.core.mapper.BaseMapper;publicclassMybatisPlusExample{privateBaseMapper<......
  • PageHelper用法示例(mybatis分页查询插件)
    1.情景展示在实际开发过程中,分页查询是最常见,也是使用频率最高的数据查询。分页查询,如果我们进行手动在xml当中写SQL的话,起码要写两个SQL。一个是分页,一个是查询数据总数。问题在于:这样做,会提高我们的工作量,而且这些也是很繁琐的过程。能不能让我们只关注查询业务(查询SQL),而......
  • fastadmin
    fastadmin列表获取选中项varids=Table.api.selectedids(table); 获取table页面返回数据//初始化表格table.bootstrapTable({url:$.fn.bootstrapTable.defaults.extend.index_url,pk:'id',sortName:'id',fixedColumns:true,fixedRightNumbe......
  • EFCore 使用FluntApi配置 全局查询筛选器
    我们在类中通常会有一个属性为IsDel来表示软删除或也称逻辑删除,这个属性会导致我们在进行查询操作时,每一次都要.where(s=>s.IsDel==false)非常的麻烦。在使用efCore时可用通过配置查询筛选器来很好的解决这个问题。publicclassSysUser{publiclongId{get;set;}publi......
  • 媒体查询+scss 响应式开发
    ```bash$color:#3497ee;@mixinopacity($value){opacity:$value;filter:alpha(opacity=$value*100);}@mixintransition($obj,$time){-webkit-transition:$obj$time;-moz-transition:$obj$time;-ms-transition:$obj$time;trans......