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
-----------
임에 그 일을 내 코드, 위보세요, 나는 그것을 대담하게 만들었습니다. – Batmannn
@Batmannn 아니오, 당신은'$ order = new Order(); $ order-> create ($ data);'당신의 코드는'create()'뒤에 빈 모델을 반환 할 것입니다. 그리고 내 대답의 코드는 생성 된 모델을 반환합니다. 그리고 당신의 다른 질문에서 말했듯이 당신의 건축은 좋지 않습니다. 다 대 다 관계에 대해 배우고 그것을'Order'와'Product' 모델에 사용하고'OrderDetails' 모델을 없애야합니다. –