laravel - 如何修复 laravel 关系查询 where 子句?
问题描述
我试图通过'computer_files'数据透视表从'files'表中获取数据,但查询将'is null'放入查询中,因此它不会与数据一起返回。但是,如果我将 is null 更改为 ID 并将其作为 SQL 命令运行,它确实会返回数据。
我试过浏览 laravel 文档,但没有帮助。我不想做的是使用原始查询。
这是文件关系函数:
public function files(){
return $this->belongsToMany('App\File', 'computer_files', 'computer_id', 'file_id');
}
这就是我获取数据并当前返回一个空集合的方法:
$computer = Computer::where('computer_id', session('computer_id'))->first();
pr($computer->files);
die;
'toSql()' 也给出了这个:
select * from `files` inner join `computer_files` on `files`.`id` = `computer_files`.`file_id` where `computer_files`.`computer_id` is null
我希望在查询中看到一个 ID 而不是“为空”,所以它会返回我需要的结果。
解决方案
推荐阅读
- javascript - React bootstrap:如何将数组传递给 Form.Control 中的选项
- core-data - 在 Core Data WkWebView 中创建新对象时停止响应(SwiftUI)
- android - InputMethodService 与 Jetpack Compose - ComposeView 导致:组合到不传播 ViewTreeLifecycleOwner 的视图中
- sql - 如何为输出表命名?
- java - 有人可以帮我理解 Retrofit2 POST 请求吗?
- python - 使用 VSCode 和 Pycharm 运行 python 代码时不出现 GUI
- react-router - 您如何从外部请求路由反应组件?
- c# - 第一次单击后按钮值不会改变
- google-calendar-api - 为超级管理员禁用 Google Apps 日历通知
- django - 子查询中的 Django 回合