eloquent - Laravel 不能使用 Select 和 With
问题描述
我有 3 张桌子:
reservation
reservation_kit
kit
我使用这个命令来获取所有带有列resPickDate
和resReturnDate
. 我也想得到工具包
$reservations = Reservation::with('kits:kitNo')
->select('resPickDate', 'resReturnDate')
->get();
问题1:如果我取消注释选择,我会得到类似
{"resPickDate":"2018-10-29","resReturnDate":"2018-10-29","kits":[]}
问题 2:如果我评论选择,with('kits:kitNo')
不只得到否,我也得到枢轴
"kits":[{"kitNo":"ACC_AUDIO-SPEAKERS_6840.01","pivot":{...}}
我怎么能只用 Kits 获得 resPickDate 和 resReturnDate ?
谢谢
解决方案
它的多对多通常使用这种绑定,它会破坏连接,因为您使用的是选择它只查找特定字段,现在我不知道如何使用这样的多对多进行绑定,但是您可以尝试:
Reservation::with('kits:kitNo')
->get()
->map(function ($item, $key){
return [
"resPickDate" => $item->resPickDate,
"resReturnDate" => $item->resReturnDate,
"kits" => $item->pivot
];
});
推荐阅读
- java - 创建 BitSet 的组合
- java - 排序数组列表
不包括字符串前半部分的数字 - javascript - 链式承诺如何在微任务队列中排队
- python - 在 keras 自定义层中包含高级计算(类 scikit)
- javascript - 使用 javascript 从现有对象创建对象
- python - Pandas tseries Holiday 中的自定义节日庆祝活动
- python - 如何在文本文件中找到 n 个字母的单词?
- javascript - 在 peerjs 中接收连接是阻塞操作吗?
- facebook-graph-api - 我可以通过 Facebook Graph API 获得提及列表,就像我们在 Facebook 页面中使用“@”一样吗?
- jenkins - Jenkins 插件 ssh-agent 显示“错误:无法运行 ssh-add”