为了账号安全,请及时绑定邮箱和手机立即绑定

请教一个laravel模型关联查询的问题

请教一个laravel模型关联查询的问题

PHP
隔江千里 2019-03-18 18:09:45
关联查询的时候按照文档所说 Supplier::find(1)->member()->get() 这个样子可以查出数据,我如果把find换成where就会报错 $supplier->where('status',1)->get()->member() 请问这个是什么原因,如果这么写的话该怎么修改
查看完整描述

4 回答

?
慕妹3242003

TA贡献1824条经验 获得超6个赞

因为 find 获取到的是单条数据;是一维数组;
而 get 获取到的是多条数据的二维数组;
如果想用 where 还想获取一条的一维数组需要用 first;
写成下面这种形式就可以喽;

$supplier->where('status', 1)->first()->member()->get();
查看完整回答
反对 回复 2019-03-18
?
翻翻过去那场雪

TA贡献2065条经验 获得超14个赞

楼上说的很清楚,按照你说的 “如果我想获取get到的所有的应该怎么写”,没有这个使用场景,因为你不能保证每条数据的member是一样的,所以从设计上来说就不合理。

查看完整回答
反对 回复 2019-03-18
?
绝地无双

TA贡献1946条经验 获得超4个赞

这样试试
$supplier->where('status',1)->member()->get()

查看完整回答
反对 回复 2019-03-18
?
心有法竹

TA贡献1866条经验 获得超5个赞

实际项目中很少用find 方法吧,find(1) 默认的是 主键id搜索,都是一对一的,所以你一对多或者多对多,find()不合适
查看完整回答
反对 回复 2019-03-18
  • 4 回答
  • 0 关注
  • 397 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信