我有一个我想存储的表调用订单,但是我与customer表建立了关系,因为我需要customer_id
,但现在我收到了这个错误:
customers_id没有默认值
这是Order
模型中的关系:
public function customer()
{
return $this->belongsTo(Customer::class, 'customer_id', 'id');
}
Customer
型号:
public function order()
{
return $this->hasMany(Order::class, 'customers_id');
}
控制器:
public function store(Request $request)
{
$orderDate = $request->only(['shippingAddress', 'receivingAddress','status']);
$order = Order::create($orderDate);
return redirect()->route('order.index',compact('order'));
}
上述代码有什么问题?
答案 0 :(得分:0)
这意味着customer_id的默认值是什么?
在这种情况下:我发现您没有customer_id
来创建订单。
如果客户登录并下订单,您可以使用它来指定customer_id
$orderDate['customer_id'] = Auth::user()->id;
答案 1 :(得分:0)
错误是因为当您保存订单时,customers_id
列为空。如果您没有将列标记为可空,并且在插入新记录时未传递值,则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'));
}