Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 拉威尔雄辩地通过返回空数组_Php_Laravel_Eloquent - Fatal编程技术网

Php 拉威尔雄辩地通过返回空数组

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

我很难从HasManyThrough的关系中得到一个有说服力的问题

这些是我的桌子

页面

  • 身份证
  • 纵队
  • 幻灯片放映
幻灯片放映

  • 身份证
  • 纵队
幻灯片

  • 身份证
  • 纵队
  • 幻灯片放映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();