Laravel:whereNull为枢轴

亚历克斯

我有一个通过order_items数据透视表与图书(图书模型)相关的订单(订单模型)表:

 public function books()
  {
    return $this->morphedByMany('App\Models\Book', 'order_item')

 ->withPivot(['quantity', 'presenter_id', 'price', 'portion', 'settlement_id']);
 }

我需要过滤数据presenter_id透视表(order_items)中为null的结果但是没有像这样的方法wherePivotNull我也尝试了以下solution(reference)但没有机会:

 public function books()
  {
    return $this->morphedByMany('App\Models\Book', 'order_item')

 ->withPivot(['quantity', 'presenter_id', 'price', 'portion',    'settlement_id'])

  ->getQuery()->whereNull('order_items.presenter_id')->get();
 }

它抛出此异常:

关系方法必须返回类型为Illuminate \ Database \ Eloquent \ Relations \ Relation的对象(视图:E:\ xampp \ htdocs \ pnu \ resources \ views \ orders \ table.blade.php)(视图:E:\ xampp \ htdocs \ pnu \ resources \ views \ orders \ table.blade.php)

爱国者

您只需要whereNull()直接调用关系即可,但是您需要确保使用透视表的名称来限定字段名称。

public function books()
{
    return $this->morphedByMany('App\Models\Book', 'order_item')
        ->whereNull('order_items.presenter_id')
        ->withPivot(['quantity', 'presenter_id', 'price', 'portion', 'settlement_id']);
}

调用whereNull()关系时,它将whereNull()内部调用基础查询构建器,然后返回关系对象。在您提供的示例中,您whereNull()直接调用了查询构建器(getQuery()首先调用),这将返回查询构建器对象,该对象将引发异常。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Laravel:whereNull为枢轴

来自分类Dev

动态枢轴为零

来自分类Dev

Laravel的雄辩枢轴对象

来自分类Dev

在枢轴上获取记录[Laravel]

来自分类Dev

快速排序,中间元素为枢轴

来自分类Dev

SQL将行汇总为列(枢轴?)

来自分类Dev

Laravel插入三向枢轴表

来自分类Dev

Laravel:枢轴表指向多个表

来自分类Dev

在Laravel的雄辩中删除额外的枢轴对象

来自分类Dev

Laravel 5枢轴上的过滤器

来自分类Dev

表中laravel与枢轴接合表

来自分类Dev

在Laravel的雄辩中删除额外的枢轴对象

来自分类Dev

Laravel SelectBox带枢轴列的选定属性

来自分类Dev

Laravel元素枢轴表使用where

来自分类Dev

Laravel 5.5 BelongsToMany 带有枢轴条件

来自分类Dev

取决于枢轴额外字段,从枢轴获取Laravel附加/分离模型

来自分类Dev

使用枢轴转换表:将行选择为列

来自分类Dev

FBX导出:将对象枢轴设置为场景的中心

来自分类Dev

Laravel:如何创建自定义枢轴模型?

来自分类Dev

Laravel:如何通过键ID获得单个枢轴行

来自分类Dev

Laravel HasManyThrough带三向枢轴表

来自分类Dev

laravel检查枢轴在非对象上返回错误contains()

来自分类Dev

Laravel HasManyThrough带三向枢轴表

来自分类Dev

Laravel 5.2使用自定义枢轴进行多对多

来自分类Dev

如何过滤/选择 Laravel (5.4) 中的中间(枢轴)表列

来自分类Dev

Laravel 自定义枢轴模型缺少字段

来自分类Dev

laravel 如何通过枢轴获取四肢表

来自分类Dev

Laravel – 加载两个模型之间的枢轴信息

来自分类Dev

枢轴或不枢轴