这是我在本网站发布的第一个问题,希望你能帮助我!
我的刀片中有一段代码如下所示。
@foreach($user->orders as $order)
@foreach($order->orderdaytimes as $orderdaytime)
@foreach($orderdaytime->stores as $orderdaytimestore)
@if($orderdaytime->date == $day && $orderdaytimestore->id == $store->id)
雄辩的关系如下: - 用户有很多订单 - 订单有很多订单日 - orderdaytimes属于许多商店 - 商店属于许多订单日
正如您在代码中看到的那样,我需要遍历所有这些级别,以查明是否在订单日期中记录了与特定商店相关的商店。
是否有更快捷的方法可以确定订单商店ID是否存在于订单日期 - >存储数据透视表。
答案 0 :(得分:1)
如果您不需要实际的中间数据,您可以简单地查询关系:
if ($user->orders()
->whereHas('orderdaytimes', function ($query) use ($day) {
return $query->where('date', $day);
})
->whereHas('orderdaytimes.stores', function ($query) use ($store) {
return $query->where('id', $store->id);
})
->exists()) {
// store id exists
}
你可以read more about querying relationships in the documentation here。