此问题已在此处有答案:
get null column after join tables on this coulmn laravel(2个答案)
昨天关门了。
就像现在一样->join()是一个查询生成器,所以它不会使用具有SoftDelete的Model,在我的项目中有太多使用join的代码,所以我不想手动将其全部替换为急切加载->with(),有人知道如何在保持join的同时做到这一点吗?
例如,我想得到这样的数据,而不需要在所有代码中添加->where('tb_b.deleted_at',null):
$data = TabelA::join('tb_b', 'tb_a.id_b', '=', 'tb_b.id_b')->get()
2条答案
按热度按时间qyswt5oh1#
基本上有两种方法可以解决这个问题
1.通过使用whereNull约束
1.在你的模型中创建一个全局作用域(这里,我假设是TbB模型)。在模型类中添加以下函数,以创建一个全局范围,从而自动过滤模型的get方法。
然后,你会这样做,当你需要你的数据没有被删除的数据
在这里阅读更多关于Laravel scope的内容:https://learn2torials.com/a/laravel8-global-model-scope
yhxst69z2#
三种选择
1.在连接后添加WHERE子句
1.向联接添加AND子句
1.连接子查询。