gpt4 book ai didi

php - Laravel 4.1 Eloquent 使用 "where"和 "with"来过滤相关的 MySQL 表

转载 作者:行者123 更新时间:2023-11-29 12:50:57 25 4
gpt4 key购买 nike

尝试使用 Eloquent 模拟 LEFT JOIN 并收到错误。基本上,我试图获取具有地址用户,但仅限于某种类型。

这段代码不起作用,但我想你会明白要点:

$user = User::with('addresses', 'cards')->where(function($query) {
$query->where('address.type', '=', 'shipping');
})->find(Auth::user()->id);

如果我省略 where 它工作正常,但返回的地址比我需要/想要的更多。

如何才能只获取 type = 'shipping' 的地址?我可能也想对卡片做同样的事情。如果没有送货地址,我仍然想要其他一切。

我试图使用 Eloquent 与 Fluent/DB(我确实做到了),但就是无法弄清楚。

后续:根据您所使用的 PHP 版本,您可能需要执行 array(load array)[load array]。开发和生产并不总是相同的。

最佳答案

你可以尝试类似的事情

$user = Auth::user();
$user->load(['cards', 'addresses' => function($q) {
$q->where('type', 'shipping');
}]);

Eager Loading - Constraints / Lazy Eager Loading

关于php - Laravel 4.1 Eloquent 使用 "where"和 "with"来过滤相关的 MySQL 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24729865/

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