【发布时间】:2023-01-13 22:58:23
【问题描述】:
我有一个模式“ProjectCase”,我正在尝试将模型“服务”链接到它。
我的数据库结构是这样的:
- 工程案例
- 编号
- 标题
- projectcases_to_services
- projectcase_id
- 服务编号
- 服务
- 编号
- 标题
现在我试图在两者之间建立联系,并能够通过“ProjectCase”模型获得所有服务
我发现我应该创建一个函数,它使用多次通过功能。
我试过以下方法:
public function services() {
return $this->hasManyThrough(Services::class, cases_to_services::class, 'case_id', 'id', 'id', 'service_id');
}
但这会返回所有服务。
我错过了什么?
【问题讨论】:
-
你自己很难不保持 Laravel 提供的开箱即用的命名约定。首先,尽量保持类名的单数形式。如果
ProjectCases也可以叫Project,那就叫Project。Services应该叫Service,中间表应该叫projectcase_service单数形式。指向模型的每个其他表链接都应该是复数形式,例如services和projectcases。其次,中间表应该按时间顺序排列,service_projectcases是错误的;)