首页 > 解决方案 > 如何修复 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 而不是“为空”,所以它会返回我需要的结果。

标签: laraveleloquentrelationship

解决方案


推荐阅读