Laravel 是否有可能检查Eloquent中是否包含关系?

Laravel 是否有可能检查Eloquent中是否包含关系?,laravel,laravel-5,eloquent,Laravel,Laravel 5,Eloquent,通过一个特定的关系,我有很多关系的模型。是否可以检查该关系以前是否包含在builder中 例如: $users->when($request->get('some-thing'), function($query, $id) { $query->whereHas('entries.some_thing', function($_query) { }); })->when($request->get('other-thing'), function($

通过一个特定的关系,我有很多关系的模型。是否可以检查该关系以前是否包含在builder中

例如:

$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();
这样做的目的是跳过已经在其他地方加入的额外内容

这是可能的

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

.

这不是型号。它是
illumb\Database\Query\Builder
所以不能这样工作?显示与DB交互的相关代码。我遵循上面写的内容:“我通过一个特定的关系建立了很多关系的模型。是否可以检查该关系以前是否包含在生成器中?”。您可以在
用户
模型中使用受保护的数组属性设置(如果适用)
$,并在那里声明希望始终获得的关系。因此,例如
$with=['addresses','grades']
$user=\App\user::find(1)
将为您提供该用户急切加载的地址和等级。这有点贵,因为它是急切地加载的,所以要注意使用它时有哪些查询。更新的示例如果使用
relationload('relationName')
方法会发生什么?您也可以检查方法。没有优雅的方法来实现这一点。您必须检查
$users->getQuery()->wheres
中的所有条目。