【发布时间】:2019-10-06 20:13:39
【问题描述】:
SQL 方案:
公告
id increment
交易
id increment
seller_id
buyer_id
deals_items - 项目 = 公告
id increment
title
desc
bulletin_id
deal_id
如何按公告 ID 获取交易行?在原始 SQL 中,它看起来像:
select `deals`.* from `deals` inner join `deals_items` on `deals_items`.`deal_id` = `deals`.`id` where `deals_items`.`bulletin_id` = 10572
我试过了:
public function deals()
{
return $this->hasManyThrough(DealItem::class,Deal::class, 'bulletin_id','dealid','id');
}
但这似乎是一种错误的方式。在 laravel 文档中找不到关于关系的正确方法。
@HCK 显示正确。
但是当我在刀片模板中执行 $bulletin->deals() 时,我得到了空的交易集合。
当只是 $bulletin->deal - 一切都很好时,我们收集了一些交易。
我在公告模型中使用受保护的 $with = ['deals'],但调用方法或属性有什么不同?为什么方法结果为空?
【问题讨论】:
-
您在哪个模型中创建此关系。并显示数据的响应。
-
在公告模型中,响应是错误导致 laravel 生成错误查询。我在 hasManyThrough 中使用键并没有成功 - 总是错误的查询。只有在我展示时手动编辑才能按我的意愿工作。
标签: php laravel eloquent foreign-keys