api - whereHas 不适用于 NULL 值
问题描述
在 laravel 5.5 中 whereHas() 不适用于值为 NULL 的地方。我与其他模型的关系是一对多的,我想从模型中选择值等于 NULL 的值。但不是返回特定值,而是返回结果中的所有值
plans = Plan::with('objectives')->with('objectives.keyResults')
->whereHas('objectives', function($query) {
$query->whereNull('entity_id');
$query->whereNull('quarter_id');
})->where('companyKey', Auth::user()->companyKey)->get();
解决方案
您必须两次指定约束:
$plans = Plan::with(['objectives' => function($query) {
$query->whereNull('entity_id');
$query->whereNull('quarter_id');
}, 'objectives.keyResults'])
->whereHas('objectives', function($query) {
$query->whereNull('entity_id');
$query->whereNull('quarter_id');
})->where('companyKey', Auth::user()->companyKey)
->get();
推荐阅读
- android - 领域迁移未正确实施
- node.js - 发布请求后..错误:在将标头发送到客户端后无法设置标头
- python-3.x - 使用循环的 SNS 子图
- angularjs - 服务在控制器中抛出错误作为未定义的功能
- javascript - 如何在 FlatList 中显示一维数组
- c# - 在 C# 中仅替换字符串中出现的“n”个子字符串
- php - 作曲家需要特定的拉取请求
- postgresql - Store and update jsonb value in Postgres
- java - 如何使用循环在 Android 应用程序中按顺序选择项目
- c++ - 将文本存储在 char 数组中,然后比较数组的内容