PHP/Laravel-高级关系和动态列数
我试图在Laravel中重现以下逻辑: 现在这是一个动态的航行时间表,目前在Excel中创建。在我的Laravel应用程序中,我想为每个出发地/目的地(出发地到目的地):PHP/Laravel-高级关系和动态列数,php,laravel,relationship,Php,Laravel,Relationship,我试图在Laravel中重现以下逻辑: 现在这是一个动态的航行时间表,目前在Excel中创建。在我的Laravel应用程序中,我想为每个出发地/目的地(出发地到目的地): 动态定义尽可能多的“路线”(例如,一条路线是10月30日在承运人ACL上的大西洋天空) 为我的路线定义尽可能多的ETD和ETA列(城市名称和日期)。例如,我可能希望指定特定路线有两个ETD点 例如:纽约11月6日和波士顿11月12日 ETA列也是如此。我需要能够动态地添加更多的列,如果特定的路由需要这样做 我很难理解
- 动态定义尽可能多的“路线”(例如,一条路线是10月30日在承运人ACL上的大西洋天空)
- 为我的路线定义尽可能多的ETD和ETA列(城市名称和日期)。例如,我可能希望指定特定路线有两个ETD点
- 例如:纽约11月6日和波士顿11月12日
- ETA列也是如此。我需要能够动态地添加更多的列,如果特定的路由需要这样做
Carriers
模型和表,其中包含所有不同的载体(例如“ACL”)船舶
模型和表格,其中包含特定承运人的所有不同船舶(例如“大西洋天空”和“大西洋帆”)。然后,我将在这两个模型上定义一个hasOne
关系ETD
和ETA
点时,我无法理解应该如何做到这一点
我的想法是:
路由
模型,然后保存路由信息,例如(船只id、截止日期)-但是,当不同的路由可能不同时,如何创建'etd1、etd2、etd3、eta1、eta2、eta3列听起来您的
Route
模型应该有一个船只id和起始和结束目的地。然后routes\u stops
模型或类似的模型会详细说明起始和结束之间的所有单独站点。我建议您将数据作为JSON数据传递到POST请求主体中
否则,将它们作为url参数中的url编码json对象传递
大概是这样的:
$myDataObj = [["type" => "ETD", "city" = "New York", "date" = "6/NOV"]
["type" => "ETA", "city" = "Boston", "date" = "12/NOV"]];
$myDataJSON = json_encode($myDataObj);
然后,您可以在json编码的url中添加
$myDataJSON
作为参数值。存储“stops”是否有意义在json
中的routes
表中?然后动态地将它们作为一个数组获取?我将首先将它们拆分为一个单独的表。这样,您可以充分利用数据库关系。通过将这些信息填充到JSONB blob中,查询、筛选等将变得更加困难。