我有一个waitlist
表,与attendee
表有很多关系。
基本上,候补名单中的与会者列表......我需要存储每个与会者在候补名单上的位置。 I.E. order_number
是一个自动增量唯一int:1,2,3,4,5,6 ...
Waitlist_Attendee表
ID
attendee_id_fk
waitlist_id_fk
ORDER_NUMBER
我的问题是,如果我在候补名单中有一群参与者,如果我稍后从等候名单中删除参与者,如何更新order_number?说order_number=1
从等候名单中删除。我需要更新order_number=2
,现在为order_numer=1
,并继续为每个order_number
等等......
是否有自动重新加载数字的SQL方法,因此它始终是一个顺序列表?或者我是否需要编写排序函数来编号?
或者有更好的方式我不知道吗?
答案 0 :(得分:1)
我猜您只需要通过您的与会者循环并更改订单号。
$waitList = WaitList::with(['attendees' => function($q){
$q->orderBy('order_number');
})->find(1);
$count = 1;
foreach($waitList->attendees as $attendees)
{
WaitList::find(1)->attendees()->updateExistingPivot($attendees->id, ['order_number' => $count]);
$count++;
}
答案 1 :(得分:1)
您是否认为您可能不需要重新编号?输出列表旁边显示的数字是显示时间事件。只要列表按升序创建,即使删除了一个列表,您仍然可以选择前10个,即使数字从1到12,并且#2和#10已被删除。这只是一个LIMIT 10 ORDER BY id ASC
- 和一个计数为1到10的循环用于显示(或者甚至只显示带有OL
和LI
标签的十个项目来进行HTML编号。