2017-02-24 17 views
1

注文に関する注文情報を挿入する際に問題があります。Eloquent laravel models空きID

モデル:

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 orderDetails() 
    { 
     return $this->hasMany('App\OrderDetails'); 
    } 

} 

class OrderDetails extends Model 
{ 
    protected $fillable = ['order_id','product_id','amount']; 

    public function order() 
    { 
     return $this->belongsTo('App\Order'); 
    } 


    public function product() 
    { 
     return $this->hasMany('App\Product'); 

    } 


} 

テーブル:

受注: ID のuser_id p_number 市 状態 ...

ORDER_DETAILS: 量 をPROD_ID ORDER_ID ID ...

コントローラー:

$data = $request->except('_token','submit'); 

$順=新規注文(); $ order-> create($ data);

$order_details = new OrderDetails(); 

    $cart_content = Cart::content(); 
    $order_content = []; 



    foreach($cart_content as $key=>$cart_item) { 
     $order_content[$key]['order_id'] = $order->id; 
     $order_content[$key]['id'] = $cart_item->id; 
     $order_content[$key]['qty'] = $cart_item->qty; 
     $order_content[$key]['price'] = $cart_item->price; 
    } 

    dd($order_content); 

     /* 
    foreach($order_content as $order_item) 
    { 
     $order_details->create($order_item); 

    } 

     */ 

私は$ order_contentを印刷するときに、イムはnullを、どのように私はきちんとORDER_DETAILSでそのフィールドを埋めるためのIDを取得する必要があります「ORDER_ID」ばかり?あなたは、変数に結果保存する必要があり

Orders: 
1 
1 
+12345678 
NY 
processing 
... 

Order_details: 
1 
1 
2 
5 
----------- 
2 
1 
3 
4 
----------- 
3 
1 
8 
2 
----------- 

答えて

0

$order = (new Order)->create($data); 

または:

$order = Order::create($data); 
+0

イム私の中でそれをやって、私はこのような何かを得る必要があります最後に

コード、上を見て、私は太字にしました。 – Batmannn

+0

@Batmannnいいえ、あなたは '$ order = new Order();をやっています。 $ order-> create($ data); 'あなたのコードは' create() 'の後に空のモデルを返します。私の答えのコードは、作成されたモデルを返します。あなたの別の質問で言ったように、あなたのアーキテクチャは良くありません。多対多の関係について学び、 'Order'と' Product'モデルに使い、 'OrderDetails'モデルを取り除くべきです。 –