2017-02-24 1 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_content를 인쇄 할 때

$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_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' 모델을 없애야합니다. –