2017-03-27 105 views
0

多列数据透视表下面是我的情况:与雄辩

我有一个事件模型和阶段模型,一个事件可以有多个阶段,一个阶段可以被分配到多个事件。如此多对多。事情是,一个舞台有一个sort_order,并且sort_order在每个事件中都可能不同。这就是为什么我将sort_order添加到数据透视表中而不是在舞台表中。

表: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

恕我直言,如果你需要额外的数据透视表中的可能性领域,你需要一个额外的模型,像EventStage。 – dparoli

回答

0

有时候最好是创建另一个模型(并将其用作数据透视表),而不是使用数据透视表本身。你有更多的控制权。我不确定你想要达到什么目的。