Php Laravel雄辩的困难关系查询
我是一个系统的朋友,但偶然发现了一个小问题。 我有3个模型customerCard、customerCardComment和customerCardFollowup 如果你看到下面的图片,了解我想要实现的目标,那就更好了。如您所见,我试图得到一个结果,其中我得到一个customerCard模型,其中Seld字段等于0,customerCard模型没有customerCardComment模型,其中type字段等于1、2或3,customerCard也没有任何customerCardFollowup 数据库: 客户卡 客户卡意见 客户卡跟进 注释和后续表都与客户卡中的ID字段相关。两者都有外键客户卡id 有没有办法做这个查询?还是我迷路了? 提前谢谢 Laravel's whereHas接受第三个和第四个参数。第三个参数是与结果集计数的比较运算符,第四个参数是要进行比较的数字。这将解决第一个问题:Php Laravel雄辩的困难关系查询,php,mysql,laravel,orm,eloquent,Php,Mysql,Laravel,Orm,Eloquent,我是一个系统的朋友,但偶然发现了一个小问题。 我有3个模型customerCard、customerCardComment和customerCardFollowup 如果你看到下面的图片,了解我想要实现的目标,那就更好了。如您所见,我试图得到一个结果,其中我得到一个customerCard模型,其中Seld字段等于0,customerCard模型没有customerCardComment模型,其中type字段等于1、2或3,customerCard也没有任何customerCardFollowu
CustomerCard::where(function($query){
$query->where('sold', 0)
->whereHas('customerCardComment', function($query){
return $query->whereIn('type', [1,2,3]);
}, '=', 0);
});
接下来,您可以使用->has计算从关系返回的记录数,这将解决第二个问题:
CustomerCard::where(function($query){
$query->where('sold', 0)
->whereHas('customerCardComment', function($query){
return $query->whereIn('type', [1,2,3]);
}, '=', 0)
->has('customerCardFollowup', '=', 0);
});
第三个问题实际上有点复杂,我需要考虑如何更接近这个问题。我现在就回答,让您朝正确的方向前进,并用第三个问题的解决方案编辑和更新帖子。请不要将代码作为图片发布!另外,请提供您的模型的粗略数据结构,或者普通查询的JSON输出,在这里我们可以看到所有关系和属性。我明白了,这为我解决了很多问题,事实上,现在我知道了这一点。我不知道我可以用whereHas进行关系查询。谢谢