php Laravel whereNull和where不返回任何结果

pwuypxnk  于 2023-03-11  发布在  PHP
关注(0)|答案(2)|浏览(176)

我遇到了一些奇怪的事情。我尝试使用whereNullwhere语句进行查询。当我只使用whereNull时,它会返回结果,但当我添加where语句时,即使应该有2个结果,也不会返回任何结果。

$user
    ->shoePurchases()
    ->whereNull('completed_at')
    ->where('status', '!=', 'failed')
    ->get();

shoePurchases关系是简单的hasMany关系

6rqinv9w

6rqinv9w1#

您可以执行这些操作以查找问题
查看数据:确保存在未标记为“失败”且尚未完成的鞋子购买。要执行此检查,请直接在数据库上执行以下查询:

SELECT * FROM shoe_purchases WHERE completed_at IS NULL AND status != 'failed';

删除状态的where子句并查看是否得到任何结果。这将帮助您确定问题是与状态的whereNull还是where子句有关。

$user
    ->shoePurchases()
    ->whereNull('completed_at')
    ->get();

使用orWhere方法:与其使用多个where子句,不如使用orWhere方法来检索未完成或状态不是“失败”的鞋子购买。

$user
    ->shoePurchases()
    ->where(function($query) {
        $query->whereNull('completed_at')
              ->orWhere('status', '!=', 'failed');
    })
    ->get();
0s0u357o

0s0u357o2#

在这种情况下,我猜所有状态为!= 'failed'的购买都已完成_at不为空

相关问题