Php 获取laravel中where查询的id
我想复制我的订单,并且有一个Php 获取laravel中where查询的id,php,laravel,Php,Laravel,我想复制我的订单,并且有一个orderstatus\u id列将获得订单状态id,而复制订单时,我想将订单状态id从任何内容更改为特定id 需要更多解释吗? 我的订单状态为completed,id为11,我想复制它,并在复制的订单状态下成为等待付款,id为1。在这个过程中,我希望动态地获取该id,因为我不知道将来id是否会保持不变 所以我有这样的代码: //re-order public function reorder($id) { $status = Ordersta
orderstatus\u id
列将获得订单状态id,而复制订单时,我想将订单状态id从任何内容更改为特定id
需要更多解释吗?
我的订单状态为completed
,id为11
,我想复制它,并在复制的订单状态下成为等待付款
,id为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
我想我需要的是修这条线
谢谢
更新
我的订单表的屏幕截图(如您所见,我的所有整数列都可以为空)
由于某些外键为空,因此出现错误。看起来像是
付款id
。如果要允许其为空,则需要在迁移中使其为空:
$table->string('payment_id')->nullable();
此外,请更改此项:
Orderstatus::where('title', 'Witing Payment')->select('id')->get();
致:
即使我删除了该行,并允许从旧订单复制,我仍然会得到相同的错误,我认为与付款id无关。+我的付款id可为空。我包括了屏幕截图。@mafortis请显示
OrderStatus
的迁移类和dd($newOrder)的结果代码>放在$newOrder->save()之前代码>它现在工作得很好:-D它所需要的只是那个值('id'),谢谢你,伙计,谢谢你。@mafortis很高兴它能帮上忙。)
Orderstatus::where('title', 'Witing Payment')->select('id')->get();
Orderstatus::where('title', 'Witing Payment')->value('id');