Laravel渴望加载无法正常工作,而懒惰加载相同的作品

时间:2018-08-12 14:17:33

标签: laravel-5 eloquent eager-loading

当前,我正在加载这样的关系:

$matches = App\Match::all();
foreach($matches as $match){
    $match->thuisPouleTeam;
}

原因是我需要加载那些关系,因为它是针对api端点的。

它工作正常,但是所有其他关系属性都是通过->with()方法进行加载以进行急切加载的,但是如果我尝试通过急切加载来加载此关系,则会变成错误:

strtolower() expects parameter 1 to be string, array given

我猜这可能是因为我使用compoships package来允许组合键,所以该关联方法如下所示:

public function thuisPouleTeam(){
    return $this->hasOne('App\PouleTeam', ["teamGuid", "pouleGuid"], ["thuisGuid", "pouleGuid"]);
}

但是我得到了另一个几乎相同的关系:

public function complementaireMatch()
{
    return $this->hasOne('App\Match', ["thuisGuid", "uitGuid", "pouleGuid"], ["uitGuid", "thuisGuid", "pouleGuid"]);
}

这个程序可以很好地加载,所以我不知道真正发生了什么,因为一个程序有效,而另一个程序却无效。

任何人都知道出了什么问题?预先感谢!

1 个答案:

答案 0 :(得分:1)

您必须在两个模型(<div class="menu-lg"> <label style="display: inline;color: #545454;font-weight:100;" dataid="' +this.ID +'"> <input type= "checkbox" style= "display:none;" id="10A-1">Check1 <span for="10A-1" class="checkmark"></span > </label > </div> <div class="menu-sm"> <label style="display: inline;color: #545454;font-weight:100;" dataid="' +this.ID +'" > <input type= "checkbox" style= "display:none;" id="10A-2">Check2 <span for="10A-2" class="checkmark"></span > </label > </div>Compoships)中都使用Match特征/模型:README