PHP / Laravel - расширенные отношения и динамическое количество столбцов - PullRequest
0 голосов
/ 12 ноября 2018

Я пытаюсь воссоздать нижеприведенную логику в Laravel:

enter image description here

Теперь это динамическое расписание плавания, созданное в настоящее время в Excel. В моем приложении Laravel я хотел бы указать для каждого источника / пункта назначения (Origin to Destination):

  • Определите как можно больше «маршрутов» динамически (например, 30 октября на ACL-носителе один из них - Атлантическое небо)
  • Определите столько столбцов ETD и ETA (название города и дата) для моего маршрута. Например, я могу указать, что конкретный маршрут имеет две точки ETD
    • Это могут быть, например: Нью-Йорк 6 / NOV и Бостон 12 / NOV
    • То же самое относится к столбцам ETA. Мне нужно, чтобы динамически иметь возможность добавлять больше столбцов, если конкретный маршрут требует этого

Мне трудно понять логику, необходимую для этого.

Прямо сейчас мои мысли были:

  1. Создайте модель Carriers и таблицу, которая содержит все различные носители (например, "ACL")
  2. Создайте модель и таблицу Vessels, в которой содержатся все различные суда, для конкретного перевозчика (например, «Атлантическое небо» и «Атлантический парус»). Затем я определю отношение hasOne для этих двух моделей.

Теперь мне также понадобится какая-то таблица, которая содержит конкретный маршрут (например, Нью-Йорк до Копенгаген , а затем список всех перевозчиков, имеющих этот маршрут.

Однако я не могу понять, как я должен это делать, когда мне нужно иметь возможность динамически добавлять как можно больше ETD и ETA баллов?

Я думал:

  1. Создайте модель Routes, которая будет содержать информацию о маршрутизации, такую ​​как (vessel_id, cut_off_date), но как мне создать столбцы `etd1, etd2, etd3, eta1, eta2, eta3, если это может отличаться от маршрут к маршруту?

Ответы [ 2 ]

0 голосов
/ 12 ноября 2018

Я рекомендую вам передавать данные в виде данных JSON в теле запроса POST.

В противном случае, передавайте их как закодированный в URL-адрес объект json в параметрах url.

Примерно так:

$myDataObj = [["type" => "ETD", "city" = "New York", "date" = "6/NOV"]
              ["type" => "ETA", "city" = "Boston", "date" = "12/NOV"]];

$myDataJSON = json_encode($myDataObj);

Затем вы можете добавить $myDataJSON в качестве значения параметра в ваш кодированный в json url.

0 голосов
/ 12 ноября 2018

Похоже, ваша модель Route будет иметь идентификатор судна, а также начальный и конечный пункты назначения.Затем модель routes_stops или что-то подобное будет детализировать все отдельные остановки между началом и концом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...