【发布时间】:2022-01-26 16:41:55
【问题描述】:
我正在使用 laravel 8。 我正在尝试获取具有多对多关系的数据,但给我相关表的空数据
这是数据库
订单模式
public function products()
{
return $this->belongsToMany(Product::class);
}
产品型号
public function orders(): \Illuminate\Database\Eloquent\Relations\BelongsToMany
{
return $this->belongsToMany(Order::class);
}
获取查询是
$orders = Order::query()->with("products")->get();
结果
我也在检查
$orders = Order::query()->has("products")->get();
给我同样的结果
【问题讨论】:
-
Order::first()->produts()->dd();是否显示您期望的查询?order_product表中有数据吗? -
是的,数据在 order_product 表中可用,我也将两个表的 id 匹配,这很好
-
您能否检查查询日志以确保没有发生异常情况?
DB::enableQueryLog(); $orders = Order::query()->with("products")->get(); dd($orders->toArray(), DB::getQueryLog()); -
@IGP
dd(DB::enableQueryLog());给我 null 和dd($orders->toArray());给我数组:5 [▼ 0 => 数组:6 [▶] 1 => 数组:6 [▶] 2 => 数组: 6 [▶] 3 => 数组:6 [▶] 4 => 数组:6 [▼ "id" => "0000000017" "status" => 1 "total" => "111" "created_at" => null " updated_at" => null "产品" => [] ] ] -
您能否发布
orders、order_product和products表中的示例?屏幕截图会很好地显示表格标题。
标签: php laravel relationship