我咨询了我,我需要将控制器中数组的数据传递给视图,但是当我从视图中的数组中获取数据时,会给我一个错误。
"Illegal string offset 'name'
控制器
for($i=0; $i < count($num); $i++) {
$data = [
'name' => $input['name'][$i],
'price' => $input['price'][$i],
'quantity' => intval($input['quantity'][$i]),
'created_at'=>$now,
'updated_at'=>$now,
];
}
return view('view', compact('data'));
查看
@foreach($data as $dat)
<tr>
<td width="100">Product</td>
<td width="50">Quantity</td>
</tr>
<tr>
<td>{{ $dat['name'] }}</td>
<td>{{ $dat['quantity'] }}</td>
</tr>
@endforeach
dd($ data)
array:5 [▼
"name" => "name1"
"price" => "14.00"
"quantity" => 1
"created_at" => "2018-12-11 09:03:35"
"updated_at" => "2018-12-11 09:03:35"
]
我怎么了?
答案 0 :(得分:1)
不确定,请尝试
$data = [];
for($i=0; $i < count($num); $i++) {
$temp = [
'name' => $input['name'][$i],
'price' => $input['price'][$i],
'quantity' => intval($input['quantity'][$i]),
'created_at'=>$now,
'updated_at'=>$now,
];
array_push($data,$temp);
}
return view('view', compact('data'));
答案 1 :(得分:0)
您的传递正确,问题出在您的数组中。它不是多维的,但是您尝试像多维一样访问它。
$data = [];
for($i=0; $i < count($num); $i++) {
$data[] = [
'name' => $input['name'][$i],
'price' => $input['price'][$i],
'quantity' => intval($input['quantity'][$i])
];
}