【发布时间】:2020-02-21 05:53:32
【问题描述】:
我有一个 routes 和 stations 表,其中包含关系数据透视表 route_station。我可以完美地使用belongsToMany 获取关系数据。
查看迁移和其他详细信息
Laravel pivot table with multiple columns that needs to insert later
工匠输出
>>> $stations = $route->stations()->orderBy('pivot_station_order', 'asc')->get()
=> Illuminate\Database\Eloquent\Collection {#3097
all: [
App\Station {#3077
id: 2,
name: "Daugherty Fort",
code: "LOGA",
info: "Dolore blanditiis voluptatem recusandae eos. Et minus dicta culpa iusto et sequi fugiat. Et vel totam et earum. Ad consequatur qui consequatur distinctio dolorem modi consequatur. Est non id accusamus magni magni delectus.",
photo: null,
created_at: "2020-02-21 04:31:24",
updated_at: "2020-02-21 04:31:24",
pivot: Illuminate\Database\Eloquent\Relations\Pivot {#3105
route_id: 1,
station_id: 2,
next_station_id: 3,
interchange_id: null,
station_order: 1,
distance: 2.3,
duration: 120,
created_at: "2020-02-21 04:59:07",
updated_at: "2020-02-21 05:01:15",
},
},
App\Station {#3100
id: 3,
name: "Armstrong Green",
code: "QWUB",
info: "Eos enim reiciendis voluptas animi aut aliquid. Dignissimos incidunt placeat dolore. Magni et qui ipsam ullam dolorum numquam iusto. Eligendi impedit laudantium sint quia quam reprehenderit necessitatibus quos.",
photo: null,
created_at: "2020-02-21 04:31:24",
updated_at: "2020-02-21 04:31:24",
pivot: Illuminate\Database\Eloquent\Relations\Pivot {#3127
route_id: 1,
station_id: 3,
next_station_id: 4,
interchange_id: null,
station_order: 2,
distance: 1.2,
duration: 95,
created_at: "2020-02-21 05:44:04",
updated_at: "2020-02-21 05:44:04",
},
},
App\Station {#3128
id: 4,
name: "Monroe Locks",
code: "FXNU",
info: "Necessitatibus vero sed mollitia reprehenderit est repudiandae. Dolorem voluptas est similique amet molestiae consequatur.",
photo: null,
created_at: "2020-02-21 04:31:24",
updated_at: "2020-02-21 04:31:24",
pivot: Illuminate\Database\Eloquent\Relations\Pivot {#3092
route_id: 1,
station_id: 4,
next_station_id: 5,
interchange_id: null,
station_order: 3,
distance: 2.7,
duration: 180,
created_at: "2020-02-21 05:44:44",
updated_at: "2020-02-21 05:44:44",
},
},
],
}
问题:
但是,我在数据透视表中有一个附加字段 属于
stations表。我想获得这些属性 细节。所以我必须创建另一个站对象来获取next_station_id和interchange_id的数据吗? 或者有什么方法可以使用 Eloquent 来避免创建新站 对象?
【问题讨论】:
-
您的问题不清楚您要达到的目标。您链接的问题似乎已经回答了。
-
你想从像 $station->pivot->distance 这样的车站模型访问一个枢轴属性吗?
-
pivot_station_order 是什么字段?
-
同意 Junaid,你只想 $route->attach($station, ['distance' => 2.8, 'duration' => 200])
-
祝你好运
标签: laravel pivot-table