首页 > 解决方案 > 是否可以检查关系是否包含在 Eloquent 中?

问题描述

我通过一个特定的关系有很多关系的模型。是否可以检查该关系是否已包含在之前的某个构建器中?

例如:

$users->when($request->get('some-thing'), function($query, $id) {
    $query->whereHas('entries.some_thing', function($_query) {
    });
})->when($request->get('other-thing'), function($query, $id) {
    $query->whereHas('entries.other_thing', function($_query) {
    });
})->when($request->get('third-thing'), function($query, $id) {
    $query->whereHas('entries.third_thing', function($_query) {
    });
});

// .......

if ($users->entries_was_not_included()) {
    $users->has('entries')
}

$users = $users->get();

这个想法是跳过已经加入其他地方的额外包含。

标签: laravellaravel-5eloquent

解决方案


有可能的

if ($user->relationLoaded('entries')) {
    // entries are loaded code
}

文档


推荐阅读