这是我的情景:
我有一个事件模型和一个舞台模型,一个事件可以有多个阶段,一个阶段可以分配给多个事件。多对多。问题是,一个阶段有一个sort_order,并且sort_order在每个事件中都可能不同。这就是为什么我将sort_order添加到数据透视表中而不是在例如舞台表中。
table:events_stages
| event_id | stage_id | sort_order |
------------------------------------
| 1 | 1 | 1 |
| 1 | 2 | 2 |
| 1 | 5 | 3 |
事情是,当我将舞台与舞台上的事件联系起来时, 我在StageController中做了类似的事情:
发送包含events: [1,2,3]
和sort_order: [1,1,2]
$relatedEvents = array();
foreach ($request->events as $key => $event)
{
$relatedEvents[] = array(
'event_id' => $relatedEventId,
'sort_order' => $request->sort_order[$key]
);
}
$stage->events()->sync(
$relatedEvents
);
但仅仅依靠帖子的顺序,看起来并不是一个好主意。
有没有人有更好的解决方案?
谢谢!
答案 0 :(得分:0)
创建另一个模型(并将其用作枢轴)有时更好,而不是使用数据透视表本身。你有更多的控制权。我不确定你想要达到的目标。