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
-----------
イム私の中でそれをやって、私はこのような何かを得る必要があります最後に
コード、上を見て、私は太字にしました。 – Batmannn
@Batmannnいいえ、あなたは '$ order = new Order();をやっています。 $ order-> create($ data); 'あなたのコードは' create() 'の後に空のモデルを返します。私の答えのコードは、作成されたモデルを返します。あなたの別の質問で言ったように、あなたのアーキテクチャは良くありません。多対多の関係について学び、 'Order'と' Product'モデルに使い、 'OrderDetails'モデルを取り除くべきです。 –