当前位置: 首页 > news >正文

建设网站翻译淄博圻谷网站建设制作

建设网站翻译,淄博圻谷网站建设制作,微信营销软件破解版,天津百度快照优化公司一,多表关联 文章表articles 和user_id,category_id关联 //with()方法是渴求式加载,缓解了1N的查询问题,仅需11次查询就能解决问题,可以提升查询速度。with部分没有就以null输出,所以可以理解为 多表 left join 查…

一,多表关联

文章表articles 和user_id,category_id关联

//with()方法是渴求式加载,缓解了1+N的查询问题,仅需1+1次查询就能解决问题,可以提升查询速度。with部分没有就以null输出,所以可以理解为  多表  left join 查询
//has()和whereHas() 是基于关联关系去过滤模型的查询结果,如果关联模型不符合条件那整体就没有数据。所以可以理解为多表  inner join 查询。
  • 模型关系
public function user(){return $this->belongsTo('App\Models\User','user_id','id');
}//表2public function category(){return $this->belongsTo('App\Models\Category','category_id','id');}
  • 控制器
//输出文章表中所有文章数据,如果符合用户id=1,分类name=科技 就输出关联的信息,没有就是null,类似left join 查询
$list = Article::with(['user'=>function($query){$query->where('id', '=', '1');},'category'=>function($query){$query->where('name', '=', '科技');},'模型定义的方法名'=>function($query){$query->where('name', '=', '科技');}
])
->where('status',1)
->get();
//输出文章表中符合条件的文章,需要满足用户id=1,分类name=科技 的条件,类似 inner join
//这里要注意,whereHas和has只做筛选,并不返回关系user和category中的数据,但是 with 是返回的。所以,当要返回关系数据时,两者要结合使用。
$list = Article::whereHas('user',function($query){$query->where('id', '=', '1');
})
->whereHas('category',function($query){$query->where('name', '=', '科技');
})
//这里的with 其实不用再写条件也行,因为前面的whereHas 已经限定了条件了
->with(['user'=>function($query){$query->where('id', '=', '1');},'category'=>function($query){$query->where('name', '=', '科技');}
])
->where('status',1)
->get();

实际使用

//$request->has() 判断参数是否存在,$request->filled() 判断参数存在且不为空
$id = $request->get('id');
$list = Article::whereHas('user',function($query) use ($id){if(!empty($id)){$query->where('id', '=', $id);}})
->whereHas('category',function($query){$query->where('name', '=', '科技');
})
//这里的with 其实不用再写条件也行,因为前面的whereHas 已经限定了条件了
->with(['user'=>function($query){$query->where('id', '=', '1');},'category'=>function($query){$query->where('name', '=', '科技');}
])
->where('status',1)
->get();

二,多表多层级嵌套关联查询

一个company有多个store,一个store有多个goods

$limit = $request->limit ?? 10;
$query = Goods::query()->where(['status' => 1]);
// 如果存在请求的公司,获取请求公司所有商家的每款产品
if ($request->company_ids){$companyIdsArr = explode(',', $request->company_ids);$query->whereHas('business', function ($query) use($companyIdsArr){$query->whereHas('commpany', function ($query) use($companyIdsArr){$query->whereIn('id', $companyIdsArr);});});
}
$list = $query->orderBy('id', 'desc')->paginate($limit)

输出goods列表包含所属的商家和商家所属的公司

$builder = Goods::where('status',1);
if($request->filled('type')){$builder->where('type',$request->type);
}
//两种都可以
//$builder->with(['business.company'])->get();
$list = $builder->with(['business'=>function($query){$query->with('company');
}])->get(); 
http://www.yayakq.cn/news/676988/

相关文章:

  • 最专业微网站首选公司wordpress unknown
  • 申请网站平台怎么做公众号绑定网站教程
  • 广告类的网站始兴县建设局网站
  • 出售家教网站模板西安做网站费用
  • 高端网站建设的市场分析房产系统平台
  • 昆明网站建设手机版网站设计制作花多少钱
  • 域名注册网站中国互联网四大门户
  • ic网站建设宁波网站建设设计价格
  • 免费查看招标信息的网站重庆网站建设求职简历
  • 外包公司和劳务派遣阳城seo排名
  • 江苏专业的网站建设有没有免费的crm系统软件
  • 网站建设招标文件范本哪些网站是做色选机销售的
  • 百度云架设网站网站建设项目开发书
  • 做网站费用可以看为广告费用吗加快百度收录的方法
  • 代加工网站有哪些福建省住房和城乡建设厅网站电话
  • 十大网站app软件推荐一款男人都懂得app
  • xin网站ftp上传作业3 主题资源网站建设
  • 有关网站建设的知识网站建设与维护的工资
  • 网站类别页面怎么做业务外包
  • 成都企业网站的建立无加盟费先铺货的项目
  • 软件项目网站建设实验报告军事新闻直播在线观看
  • 正规制作网站公司做恒指网站
  • 有找猎聘网站做简历优化的深圳注册公司股东
  • 网站开发简历项目东莞商贸公司寮步网站建设价格
  • 没有备案的网站怎么访问不了wordpress让收录
  • 搭建网站服务器平台的三种方式非标准零加工
  • 备案的网站程序上传网站建设难不难
  • 网站备案多久可以注销百度指数怎么刷指数方法
  • 网站建设教学点dw做网站基础
  • 模板网站zencart做企业网站用二级域名好吗