Php Laravel 5.8-在数组中给我错误:';htmlspecialchars()要求参数1为字符串,数组给定';
我在控制器中有如下功能:Php Laravel 5.8-在数组中给我错误:';htmlspecialchars()要求参数1为字符串,数组给定';,php,arrays,laravel,laravel-5,Php,Arrays,Laravel,Laravel 5,我在控制器中有如下功能: public function convert($id) { $project = ProjectMaster::findOrFail($id); $items = ProjectItem::all()->where('id_project_master', $id); $deliveryOrder = ProjectDeliveryOrder::where('id_project'
public function convert($id) {
$project = ProjectMaster::findOrFail($id);
$items = ProjectItem::all()->where('id_project_master', $id);
$deliveryOrder = ProjectDeliveryOrder::where('id_project', $id)->first();
$itemsDO = ProjectItemDeliveryOrder::all()->where('id_deliveryorder', $deliveryOrder->id)->pluck('id_item')->toArray();
return view('delivery-order-form-add', compact('project', 'value', 'items', 'itemsDO'));
}
$items
给我结果:
{
"5": {
"id": 6,
"id_project_master": 6,
"name": "Item 1",
"qty": 2,
"cost": "1,000,000",
"totalcost": "2,000,000",
"rate": "2,000,000",
"totalrate": "4,000,000",
"created_at": "2020-01-24 03:23:25",
"updated_at": "2020-01-24 03:23:25"
},
"6": {
"id": 7,
"id_project_master": 6,
"name": "Item 2",
"qty": 2,
"cost": "2,500,000",
"totalcost": "5,000,000",
"rate": "4,000,000",
"totalrate": "8,000,000",
"created_at": "2020-01-24 03:23:25",
"updated_at": "2020-01-24 03:23:25"
}
}
[
6
]
和$itemsDO
给我结果:
{
"5": {
"id": 6,
"id_project_master": 6,
"name": "Item 1",
"qty": 2,
"cost": "1,000,000",
"totalcost": "2,000,000",
"rate": "2,000,000",
"totalrate": "4,000,000",
"created_at": "2020-01-24 03:23:25",
"updated_at": "2020-01-24 03:23:25"
},
"6": {
"id": 7,
"id_project_master": 6,
"name": "Item 2",
"qty": 2,
"cost": "2,500,000",
"totalcost": "5,000,000",
"rate": "4,000,000",
"totalrate": "8,000,000",
"created_at": "2020-01-24 03:23:25",
"updated_at": "2020-01-24 03:23:25"
}
}
[
6
]
然后我有一个循环,在每个循环中,在刀片视图中验证是否存在\u array($this$array),如:
@foreach ($items as $item)
<tr>
<td class="text-right"><input type="checkbox" class="form-check-input" name="id_item[]" value="{{ $item->id }}" @if(in_array($item->id, $itemsDO)) disabled @endif></td>
</tr>
@endforeach
@foreach($items作为$item)
id,$itemsDO)已禁用@endif>
@endforeach
此验证给我一个错误htmlspecialchars()要求参数1为字符串,数组为给定的
。
我在数组中写入了错误的参数或
,无法在blade Laravel上工作?blade希望@if
和@endif
在单独的行上。如果出现以下情况,则可以使用三元:
@foreach ($items as $item)
<tr>
<td class="text-right"><input type="checkbox" class="form-check-input" name="id_item[]" value="{{ $item->id }}" {{ (in_array($item->id, $itemsDO)) ? "disabled" : "" }}></td>
</tr>
@endforeach
@foreach($items作为$item)
id,$itemsDO))?“已禁用”:“}}>
@endforeach
使用此代码解决:
<td class="text-right"><input type="checkbox" class="form-check-input" name="id_item[]" value="{{ $item->id }}" @if(in_array($items[$i]->id, $itemsDO)) disabled @endif></td>
id,$itemsDO))已禁用@endif>
$i
是循环增量您的错误在if
语句中
你应该说条件是否为真echo
disable。你写disable
的方式是一个简单字符串
,但你应该把它作为html代码
来介绍
所以简单地说,你应该在echo
函数中调用disable
你能在数组($item->id,$itemsDO[0])中进行更改吗?或者如果你将在数组($item->id,$itemsDO[$key])中使用foreach usd foreach($items as$key=>$item)@Salemloress我尝试了数组的增量$key索引,仍然会给我同样的错误