如何将数组从控制器传递到视图Laravel

时间:2018-12-11 08:17:11

标签: laravel laravel-5

我咨询了我,我需要将控制器中数组的数据传递给视图,但是当我从视图中的数组中获取数据时,会给我一个错误。

"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"
]

我怎么了?

2 个答案:

答案 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])
    ];
}