【发布时间】:2020-06-28 18:30:33
【问题描述】:
我正在开发一个电子商务。问题是我在user 模型中为购物车创建了一个函数belongsToMany 来保存许多产品,称为carrito。但是在控制器中,当我想获得产品的id 时,给我一个错误,好像属性不存在一样。我想做的是从现有表carts(使用函数carrito)中获取数据并将其插入一个名为pedidos的新表中
这里是代码...
模型:用户
public function carrito(){
return $this->belongsToMany(Product::class, 'cart')
->withPivot('product_id', 'user_id', 'quantity');
}
控制器
public function create(Request $request)
{
$user =Auth::user();
$producto = $user->carrito;
Pedido::create([
'user_id'=>Auth::User()->id,
'puntosretiros_id' => $request->get('puntoE'),
'product_id' => $producto->product_id,
'quantity' => $producto->quantity,
'total'=> $request->input('total'),
]);
$pedido->save();
return redirect('/');
}
【问题讨论】:
-
关系中提到的表名(
cart)与您所说的不同(carts) -
$producto = $user->carrito;将返回记录集合。所以你将无法访问这样的值,$producto->product_id。 -
如果您需要将关系中的所有记录插入到新记录中,则循环通过
$producto->product_id并创建一个数据数组,然后将该数据插入到表中
标签: laravel eloquent eloquent-relationship