我构建了一个数据透视表,其中包含我要关联的表的ID。当我拥有特定项目的ID时,我现在想要获取保存在数据透视表中的此项目的最新条目。例如:
Table 1: Tickets
Table 2: Status
Table 3: Ticket_Status (Pivot)
如果我在数据透视表中添加一个新条目,我会这样:
枢轴
ticketId,statusId
1, 2
1, 3
2, 1
现在我想在Ticket Id
1的数据透视图中收到最新状态,所以我希望获得票证1的statusId
3.但是我如何在Laravel中执行此操作?< / p>
创建数据透视表的条目:
public function attachDispatchStatus($id) {
$this->status()->attach($id);
$this->touch();
}
// set fields on the eloquent object and save to database
// raise event that the incident was created.
public function createDispatch($command) {
// Get BodyContent from POST Request
$this->dispatchReference = $command->dispatchReference;
$this->incidentReference = $command->incidentReference;
// Create new Dispatch
$dispatch = Dispatch::create(array(
'dispatch_reference' => $this->dispatchReference,
'incident_reference' => $this->incidentReference
));
$dispatchStatus = DispatchStatus::where('status', '=', 'processing')->first();
$dispatch->attachDispatchStatus($dispatchStatus->id);
return $this;
}
答案 0 :(得分:0)
在编辑门票时,为什么不使用Laravel 5中提供的updateExistingPivot($roleId, $attributes);
?
这将解决您的问题并使您的数据库更轻:)
查看Larvel Doc以获取有关数据透视表的一些示例。
如果您不想这样做(因为您想保留您输入的历史记录),我认为您必须在数据透视表中添加dateTime字段...然后,只需订购按日期,你会没事的。