Laravel Eloquent - 关系是否有关系?

时间:2017-07-27 08:23:53

标签: php laravel eloquent

我有一个型号Alpha,它有很多型号Beta,有许多型号Charlie 我不是所有来自一个至少有一个查理的阿尔法的测试版。

所以我的猜测是:

$alpha = Alpha::first();
$betasWithACharlie = $alpha->betas()->has('charlies')->get();

但这不起作用。 我也试过“whereHas”失败了。

2 个答案:

答案 0 :(得分:2)

简单地:

$betasWithACharlie = $alpha->betas()->has('charlies', '>', 1)->get();

或者你可以检索“查理”'只有当他们满足更高级查询的特定条件时

$betasWithACharlie = $alpha->betas()->whereHas('charlies', function($query){
$query->where('condition');
})->get();

答案 1 :(得分:0)

我有一个想法,我以前没有测试过:

$betasWithACharlie = $alpha->betas()->whereHas('charlies', function ($query) {
    $query->where('beta_id', '!=', 0);
})->get();

尝试另一个:

$betasWithACharlie = Alpha::whereHas('betas', function ($query) {
    $query->has('charlies');
});