gpt4 book ai didi

PHP Laravel Eloquent,foreach 破坏了我的关系

转载 作者:搜寻专家 更新时间:2023-10-31 21:55:27 24 4
gpt4 key购买 nike

考虑这段代码:

$booking = Booking::where('id', $bookingId)->with('Trips.depFlight')->with('Trips.arrFlight')->first();

foreach($booking->trips as $trip){}

return response()->json($booking);

当 foreach 运行时,arrFlight 和 depFlight 都不会作为 json 返回当 foreach 没有运行时,depFlight 和 arrFlight 都返回。

为什么?

最佳答案

这可能是因为你们的关系。如果您在模型 Trips 中定义了您的关系,您应该在任何地方都将其用作 Trips 而不是 trips。所以你应该这样使用它:

$booking = Booking::where('id', $bookingId)->with('Trips.depFlight')->with('Trips.arrFlight')->first();

foreach($booking->Trips as $trip){}

$booking = Booking::where('id', $bookingId)->with('trips.depFlight')->with('trips.arrFlight')->first();

foreach($booking->trips as $trip){}

取决于你们关系的实际名称(大写字母与否)

如果您在代码中使用不同字母大小写的关系,Laravel 将再次执行查询(性能损失),并且在这种情况下可能会进一步执行关系(depFlightarrFlight 丢失了)

关于PHP Laravel Eloquent,foreach 破坏了我的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34451908/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com