laravel 在哪里嵌套

梅鲁安·布森纳

我想和他所有没有 etat="archiver" 的 disponibilites 一起找到位置

可用性

class Disponibilite extends Model
{
    public function etat()
    {
        return $this->belongsTo('App\Etat');
    }
}

地点

class location extends Model
{
    public function disponibilite()
    {
        return $this->hasMany('App\Disponibilite');
    }
}

etat是空的

class Etat extends Model
{
}

这是我试过的

$location = location::where("id", $id)
->with([
    "locataire",
    "prix",
    "acceptations",
    "distances",
    "equipements",
    "logement",
    "language",
    "photo",
    "disponibilite" => function ($query) {
        $query->with(["etat" => function ($q) {
            $q->where("type", "!=", "archiver");
        }]);
    }
])
->first();
梅鲁安·布森纳

我修复了它,问题是有些行的 disponibilites 有一个 etat (NULL) 所以如果我在回调函数中测试了 etat (null) 的类型什么都不会发生所以我添加 OrWhere("etat_id",null ) 我用 wherehas 改变了

$location = location::with(
                [
                    "locataire",
                    "prix",
                    "acceptations",
                    "distances",
                    "equipements",
                    "logement",
                    "language",
                    "photo",
                    "disponibilite" => function ($query) {

                        $query->whereHas("etat", function ($q) {

                            $q->where("type", "!=", "archiver");
                        })->Orwhere("etat_id", null);
                    }
                ]
            )
                ->find($id);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章