我想复制我的订单,并且orderstatus_id
列会获得订单状态ID,而重复订单我想要将订单状态ID从任何地方更改为特定ID。
我的订单状态为completed
且标识为11
,我希望将其复制并在复制的订单状态中变为waiting payment
,即1
。在这个过程中,我想动态地获取该ID,因为我不知道将来id会保持不变。
所以我的代码如下:
//re-order
public function reorder($id)
{
$status = Orderstatus::where('title', 'Witing Payment')->select('id')->get();
$order = Order::findOrFail($id);
$newOrder = $order->replicate();
$newOrder->ordernu = mt_rand(1000000000, 9999999999);
$newOrder->orderstatus_id = $status;
$newOrder->payment_id = '';
$newOrder->save();
return redirect()->back()
->with('info',
'Order Stored');
}
当我点击复制链接时,我收到此错误:
Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails
我需要的是修复这条线,(我猜)
$status = Orderstatus::where('title', 'Witing Payment')->select('id')->get();
感谢。
我的订单表的截图(因为您看到我的所有整数列都可以为空)
答案 0 :(得分:1)
您收到错误是因为某些外键为空。看起来像是$table->string('payment_id')->nullable();
。如果要允许它为空,则需要在迁移中使其可为空:
Orderstatus::where('title', 'Witing Payment')->select('id')->get();
另外,改变这个:
Orderstatus::where('title', 'Witing Payment')->value('id');
要:
val classType = schema.field.type
classType match {
case _: Class[String] => println("String")
case _: Class[_] => println("Others")