当我想更新订单时,我有一个名为Orders的表与orderItems表具有一对多关系。 orderItems表的数组值向我显示了此错误异常数组到字符串的转换,并且值在数据库中未更新 虽然当我使用dd()函数时,它将显示所有数组输入 这是我的观点(订单)
@if(count($orders)>0)
@foreach ($orders as $order)
<form action="{{route('order.update',$order->id)}}" method="post">
<input type="hidden" value="PUT" name="_method"/>
@csrf
<input name="cus_name" type="text" value={{$order->customerName}}><br/>
<input name="cus_address" type="text" value="{{$order->customerAddress}}"><br/>
<input name="order_date" type="date" value="{{$order->orderDate}}"><br/>
@if(count($orderItems)>0)
@foreach ($orderItems as $orderItem)
<input name="productName[]" type="text" value="{{$orderItem->ProductName}}"><br/>
<input name="Quantity[]" type="number" value="{{$orderItem->Quantity}}"><br/>
<input name="price[]" type="number" value="{{$orderItem->price}}" ><br/>
@endforeach
@endif
<button type="submit" >update </button>
</form>
这是我的orderController
public function update(Request $request, $id)
{
$order_Data = Order::where('id',$id)->update([
'customerName' => $request->input('cus_name'),
'customerAddress' => $request->input('cus_address'),
'orderDate' => $request->input('order_date')
]);
$data=array();
foreach ($request->productName as $key => $value) {
$data[]=[
'ProductName' =>$value,
'Quantity' =>$request->Quantity[$key],
'price' =>$request->price[$key],
'OrderID'=>$id
];
}
//dd($data);
OrderItem::where('id',$id)->update($data);
return redirect(route('order.index',$id));
}
此行出现错误
OrderItem::where('id',$id)->update($data);
我试图
'ProductName' =>$request->productName[$key]
代替
'ProductName' =>$value
,但也不起作用我想在按更新botton时得到这样的结果
订单1 = [ {产品1,数量1,价格1}, {产品1,数量1,价格1}, {……。} ]
任何人都可以帮助我,我会很高兴
答案 0 :(得分:2)
尝试一次。
public function update(Request $request, $id)
{
$order_Data = Order::find($id);
$order_Data->customerName => $request->input('cus_name');
$order_Data->customerAddress => $request->input('cus_address');
$order_Data->orderDate => $request->input('order_date');
$order_Data->save();
$order_Data->order_items()->delete();
$data=[];
foreach ($request->productName as $key => $value) {
$order_items = new OrderItem;
$order_items->ProductName = $request->get("ProductName")[$key]);
$order_items->Quantity = $request->get("Quantity")[$key]);
$order_items->price = $request->get("price")[$key]);
$order_items->save();
return redirect(route('order.index',$id));
}
答案 1 :(得分:0)
01。使用json_encode()方法
@if (!string.IsNullOrWhiteSpace(Text))
{
<div class="alert @alertClass">@Text</div>
}
@code {
private string messageType;
private string alertClass = "alert-info";
[Parameter] public string Text { get; set; }
protected override async Task OnParametersSetAsync()
{
await Task.Delay(2000);
Text = "";
}
[Parameter]
public string MessageType
{
get { return messageType; }
set
{
messageType = value;
switch (messageType)
{
case "Error":
alertClass = "alert-danger";
break;
case "Warning":
alertClass = "alert-warming";
break;
case "Success":
alertClass = "alert-success";
break;
default:
break;
}
}
}
}