Ich habe 2 Modelle:Insert in vielen zu viel Beziehung Laravel 5
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 Tabellen:
product:
id
name
...
order_product:
id
order_id
prod_id
qty
...
order
id
city
phone
...
und 2 Arrays von Daten: Daten $ = $ Anfrage-> Ausnahme ('_ token', 'submit'); - Informationen über den Client $ order_content - Array mit Informationen über Produkte im Warenkorb
Also, die Frage ist, wie Sie alle diese Daten in DB einfügen? Ich habe versucht, über viele zu viele Einfügung zu lesen: sync, attach, etc .. aber nichts verstanden: c
Es ist seltsam, aber in der order_product im bekommen nur das letzte Produkt von 3 in der Reihenfolge – Batmannn
Das ist was tun: $ bestellen = (neue Bestellung) -> create ($ data); $ cart_content = Warenkorb :: content(); $ order_content = []; foreach ($ cart_content als $ key => $ cart_item) { $ order_content [$ schlüssel] ['id'] = $ cart_item-> id; $ order_content [$ key] ['qty'] = $ cart_item-> Menge; } foreach ($ order_content wie $ ORDER_ITEM) { $ order-> Produkte() -> sync ([ $ ORDER_ITEM [ 'id'] => [ 'Menge' => $ ORDER_ITEM [ 'Menge ']] ]); } – Batmannn
Vielen Dank! Nach deiner Erklärung und dem Lesen von Dokumenten habe ich es verstanden! Hier ist die funktionierende Version: foreach ($ order_content als $ order_item) { $ order-> products() -> attach ($ order_item ['product_id'], ['qty' => $ order_item ['qty'], 'price' => $ order_item ['price']]); } – Batmannn