2017-07-12 13 views
0

別のテーブルからすでにIDを持っている日付を保存するが、私はcustomer_idを必要とするので、私は顧客テーブルと私の関係を作ったが、今、私はこのエラーを取得する方法:私は保存するテーブルの呼び出し順序を持って

customers_id doesn't have a default value

public function customer() 

{ 
    return $this->belongsTo(Customer::class, 'customer_id', 'id'); 
} 

Customerモデル::

public function order() 
{ 
    return $this->hasMany(Order::class, 'customers_id'); 
} 

これは私のOrderモデルにおける関係であります3210

コントローラー:

public function store(Request $request) 
{ 

    $orderDate = $request->only(['shippingAddress', 'receivingAddress','status']); 
    $order = Order::create($orderDate); 

    return redirect()->route('order.index',compact('order')); 
} 

上記のコードで何が悪いのでしょうか?

答えて

0

これは、customer_idのデフォルト値を意味しますか?

この場合:注文を作成するためにcustomer_idがありません。

顧客のログインもし、あなたが順序を保存しているときcustomers_id列がnullであるため、エラーがある

$orderDate['customer_id'] = Auth::user()->id;

0

CUSTOMER_ID指定するためにそれを使用することができます順序を作ります。新しいレコードを挿入するときにカラムをNULL値としてマークしておらず、値を渡さない場合、DBMSはそのカラムにデフォルト値がないと不満を持ちます。

注文を保存する前に顧客を設定する必要があります。

public function store(Request $request) 
{ 
    $orderDate = $request->only(['shippingAddress', 'receivingAddress','status']); 

    // Get the customer 
    $customer = $request->user(); 

    $orderDate['customer_id'] = $customer->id 
    $order = Order::create($orderDate); 
    // or 
    // Using the relation 
    // $order = $customer->orders()->save(new Order($orderDate)); 

    return redirect()->route('order.index',compact('order')); 
} 
関連する問題