Laravel wheredoesnt不起作用

时间:2018-01-24 14:40:24

标签: php laravel

我想选择所有在日期和时间可用的材料,使用外键,如类别,子类别和本地人,其他东西,我必须得到没有关系/枢轴的材料

这是我的QUERY:

$material = Material::with(['orders_material','locals'])
     ->whereDoesntHave('orders_material',function ($query) use ($userOrder) {
        $query->where('Material_id', null); 
     })

    ->where('Categoria_id', $idcategory)
    ->where('SubCategoria_id', $idsubcategory)
    ->where('requisitado', '0')
    ->where('estado', '1')
    ->paginate(4);

我有枢轴关系,我在json数据中没有那个我需要的结果。

如何解决这个问题?

2 个答案:

答案 0 :(得分:3)

where('x', null)生成where x = null,这是一个常见的错误。

始终将nullis比较为where x is null

雄辩的方式是:

->whereDoesntHave('orders_material',function ($query) use ($userOrder) {
    $query->whereNull('Material_id'); 
 })

答案 1 :(得分:0)

您应该在模型中声明关系,然后根据需要调用模型函数,而不是编写子查询。这种方式雄辩将为您提供模型中提到的正确枢轴关系的结果。您能分享一下模型关系的一些细节吗?