Php 拉威尔雄辩地通过返回空数组
我很难从HasManyThrough的关系中得到一个有说服力的问题 这些是我的桌子 页面Php 拉威尔雄辩地通过返回空数组,php,laravel,eloquent,Php,Laravel,Eloquent,我很难从HasManyThrough的关系中得到一个有说服力的问题 这些是我的桌子 页面 身份证 纵队 幻灯片放映 幻灯片放映 身份证 纵队 幻灯片 身份证 纵队 幻灯片放映id 我的页面模型: class Page extends Model { public function slideshow_id(){ return $this->belongsTo(Slideshow::class); } public function sli
- 身份证
- 纵队
- 幻灯片放映
- 身份证
- 纵队
- 身份证
- 纵队
- 幻灯片放映id
class Page extends Model
{
public function slideshow_id(){
return $this->belongsTo(Slideshow::class);
}
public function slides(){
return $this->hasManyThrough('App\Slide','App\Slideshow','id','slideshow_id','slideshow_fk');
}
}
控制器
$page=Page::where("slug","=",$slug)->with('slides')->first();
查询日志:我不是带幻灯片的页面ID:3\u fk:1,[?=1]
select `slides`.*, `slideshows`.`id` from `slides` inner join `slideshows` on `slideshows`.`id` = `slides`.`slideshow_id` where `slideshows`.`id` in (?)
页面->幻灯片阵列:
[]
PhpMyAdmin SQL复制/粘贴:
[]
哪三张幻灯片是我页面所需的正确幻灯片
为什么我会得到一个空数组?你不能在这里找到你,因为你的实现不支持空数组的需要
假设您有三种型号A
、B
和C
,并且A
希望通过B
连接到C
然后,如果要使用hasManyThrough()
需要将B
的A
作为主键
外键
需要将C
的B
作为主键
外键
也就是说,
ab您检查过Page::where(“slug”、“=”、$slug)->first()了吗;是的,我得到了返回的页面:{“id”:3,“name”:“xxx”,“description”:“xxx.”,“slug”:“koledar”,“slideshow_fk”:1,“created_at”:“2017-01-24 12:05:23”,“updated_at”:“2017-01-24 12:05:23”,“slides”:[])这完全有道理!谢谢,我会在接下来的几分钟内尝试好的,我成功了,非常感谢!我这样定义了我的页面模型关系:return$this->hasOne('App\Slideshow','id','Slideshow\u id');它起作用了。但我仍然有“A将B的主键作为外键”
$pags = Pages::with('slideshow.slides')->where('slug', $slug)->first();