【发布时间】:2022-01-20 11:52:41
【问题描述】:
我正在尝试创建可以将多个座位附加到 1 个预订中的预订
附加座位效果很好,我可以将许多具有相同 ID 的座位附加到同一个预订中,尽管当我只想分离一个座位时,每个座位都会被分离。
添加座位示例:
public function addReservationSeat() {
$data = request()->validate([
'r_id' => 'required',
'seat_id' => 'required'
]);
$reservation = Reservation::find($data['r_id']);
$seat = Seat::find($data['seat_id']);
$reservation->seats()->attach($seat);
return response(200);
}
拆卸座椅示例:
public function removeReservationSeat() {
$data = request()->validate([
'r_id' => 'required',
'seat_id' => 'required'
]);
$reservation = Reservation::find($data['r_id']);
$seat = Seat::find($data['seat_id']);
$reservation->seats()->detach($seat);
return response(200);
}
总而言之,座位可以是相同的,相同的 id,但座位的数量可能是 10,所以我可以将多个座位附加到同一个预订中,尽管当我分离时,每个具有相同 id 的座位都会得到与保留分离。
可以只拆1个座位吗?
【问题讨论】:
-
您是否有多行具有相同的
r_id和seat_id?如果是这样,使用传递的$seat调用detach()将删除所有这些行。如果您只有一行,并且有一个额外的quantity列,例如,您可以将该列从 10 递减到 9,但这不是分离调用,而是updateExistingPivot()调用。我认为您可能需要稍微重构一下您的数据库结构。 -
在一次预订中怎么可能有超过 1 个相同的座位? (就像在现实中一样)......只是想弄清楚“座位”或“预订”的范围在这个等式中的实际含义
-
一个酒吧有很多摊位,你可以预订4个摊位,所以4个摊位附在预订上,附上作品,另一方面分离不。所以,是的,我可能不得不重构我的数据库结构,这是主要的想法,我只是因为某种原因分离会作为附加。
-
那么 4 个座位,4 个座位怎么会有相同的 'id'?它们是独特的独特事物
-
您可以附加和分离座位,但数量问题是因为分离会删除记录,它不会更新字段......如果它们是唯一实体,它会正常工作