【发布时间】:2018-08-05 17:29:22
【问题描述】:
我找不到用雄辩的方法来做到这一点。我的架构看起来像这样。
选举
- 身份证
- 标题
位置
- 身份证
- election_id
- 标题
现在,election_id 可以包含 0(表示适用于所有选举)或elections 表中的任何 id。
我的 Election 模型包含 hasMany 与 Positions 模型的关系,但现在我只获得具有相同 election_id 的那些职位,而不是那些具有0 个值。
我的选举模型片段:
public function positions()
{
return $this->hasMany(Position::class, 'election_id', 'id');
}
这可以用雄辩的吗?还是我应该求助于另一个查询?我想尽可能雄辩地做到这一点,因为我需要在我的 ElectionResource 类中加载关系。
我的 ElectionResource 类的片段:
/**
* Transform the resource into an array.
*
* @param \Illuminate\Http\Request
* @return array
*/
public function toArray($request)
{
return [
'id' => $this->id,
'title' => $this->title,
'positions' => PositionResource::collection($this->whenLoaded('positions')),
];
}
【问题讨论】:
-
所以你的选举/职位表可以有 0 id 的记录??
-
我的
positions表中的election_id可以包含0。 -
但是选举表中不会有id为0的记录吧??
-
是的,没错
-
那么你到目前为止所做的一切都很好,选举没有任何 id 为 0 的记录,这就是为什么你没有得到任何 0 选举 ID 的职位数据
标签: laravel eloquent relationship