gpt4 book ai didi

laravel-4 - Laravel 4.2 : add soft deleted items to whereHas condition

转载 作者:行者123 更新时间:2023-12-03 08:19:01 25 4
gpt4 key购买 nike

我在 Laravel 4.2 上遇到了问题,但在我的 Google friend 身上找不到解决方案:
我想在 whereHas 条件下获取所有软删除的项目,但它根本不起作用......

这是代码:

$res = $this->model->whereHas('dsps', function ($q) use ($dsp_id) {
$q->where('dsps.id', $dsp_id);
$q->withTrashed();
})->get();

我收到以下 SQL 请求:
select * from `bdc` where (select count(*) from `dsps` inner join `bdc_dsp` on `dsps`.`id` = `bdc_dsp`.`dsp_id` where `bdc_dsp`.`bdc_id` = `bdc`.`id` and `dsps`.`id` = 81 and `dsps`.`deleted_at` is null) >= 1;

问题显然是“deleted_at 为空”仍然存在。它应该通过使用 withTrashed() 方法消失。

我试着把 withTrashed() 像这样:
$q->where('dsps.id', $sst_dsp)->withTrashed();

它不会改变任何东西。

如何使用优雅的解决方案从我的 whereHas 请求中创建“deleted_at 为空”条件?
预先感谢您的建议!

最佳答案

对此的一个解决方案是创建包含垃圾记录的关系的替代形式。

public function dspsTrashed() {
return $this->hasWhatever()->withTrashed();
}

然后:
$this->model->whereHas('dspsTrashed', ...);

关于laravel-4 - Laravel 4.2 : add soft deleted items to whereHas condition,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30712159/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com