来自DB的Laravel雄辩错误选择数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了来自DB的Laravel雄辩错误选择数据相关的知识,希望对你有一定的参考价值。

我对Laravel 7 Eloquent有问题。我有2张桌子由many to many relation加入。表用户通过pivot表PaymentModuleUser连接到PaymentModule。我需要在语句where的数据透视表上使用is_active = 1。当我在模型中使用toSQL()时,SQL返回良好的结果,但是当我在Controller中检查口才查询时,我报复的数据将忽略我的wherePivot方法(返回表中的所有数据,忽略is_active = 1字段订阅者= null并让我获得该用户..如果我的pivotWhere = null不显示该用户,我必须这样做。您能否指出我的代码出了错?

我的UserTable模型:

    public function subscriber()
        return $this->belongsToMany(PaymentsModule::class, 'payment_module_user', 'user_id')->withPivot('is_active');
    

MyController:

$users = User::with(['subscriber'=>function($query)

$query->wherePivot('is_active','=', 1);
])->get();

print_r($users);
答案

尝试使用

$users = User::with('subscriber' => function($query) 
    $query->where('payment_module_user.is_active', 1);
)->get();

print_r($users);

数据透视表已经通过雄辩加入了,所以就开始使用它

找到它here

以上是关于来自DB的Laravel雄辩错误选择数据的主要内容,如果未能解决你的问题,请参考以下文章

用于 maria-db 动态列的 Laravel 雄辩包装器

雄辩的 ORM “独立” DB::raw 失败

如何编写相同的代码并以雄辩的关系获取相同的数据... laravel

Laravel 5 雄辩的查询混淆

在laravel中以雄辩的关系获取错误列的数据

laravel:雄辩的例子将数据插入数据库