2017-03-27 99 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

有時候最好是創建另一個模型(並將其用作數據透視表),而不是使用數據透視表本身。你有更多的控制權。我不確定你想要達到什麼目的。