我有2个型号:
class Order extends Model
{
protected $fillable = ['user_id','name','surname','fathers_name','phone_number','city','post_office','comment'];
public function user()
{
return $this->belongsTo('App\User');
}
public function products()
{
return $this->belongsToMany('App\Product', 'order_product');
}
}
class Product extends Model
{
public function order()
{
return $this->belongsToMany('App\Order', 'order_product');
}
public function category()
{
return $this->belongsTo('App\Category');
}
}
3张表:
product:
id
name
...
order_product:
id
order_id
prod_id
qty
...
order
id
city
phone
...
和2个数据数组: $ data = $ request->除了(' _token','提交'); - 有关客户的信息 $ order_content - 包含购物车中产品信息的数组
那么,问题是如何在DB中插入所有这些数据?我试着阅读很多对很多插入:同步,附加等等。但是什么都不懂:c
答案 0 :(得分:1)
想象一下,你有一个id为1的产品。一个id为1的订单。产品是订单的一部分,所以你必须附上它们。你做了
$product = Product::find(1);
$order = Order::find(1);
$order->products()->attach($order->id);
但是,在您的情况下,您的数据透视表有更多数据,例如'qty'。那你就做了,
$order->product()->attach($order->id, ['qty' => 2]);
到目前为止,我们只将一个产品附加到订单中。如果您想同时附加许多产品,请执行以下操作:
$order->products()->sync([
$product->id => ['qty' => 1],
$product2->id => ['qty' => 3]
]);
我希望这有助于更好地理解。我建议您一次又一次地阅读文档,直到它有意义。