显示数组数据在Laravel



我在laravel。因此,我试图将此数据保存到我的数据库并在我的应用程序上显示它。我设法保存了它,但我无法显示数据。

{
"2": {
"name": "Ice Latte",
"quantity": 1,
"price": 20000
},
"3": {
"name": "Ice Lemon Tea",
"quantity": 1,
"price": 20000
},
"6": {
"name": "Ice Chocolate",
"quantity": 1,
"price": 20000
}
}

这是我从数据库中得到的完整长度的数据。

[{"id":1,"name":"Udin","data":{"2":{"name":"Kopi Creamy","quantity":1,"price":20000},"6":{"name":"Ice Chocolate","quantity":1,"price":20000},"3":{"name":"Es Teh Manis","quantity":1,"price":20000}},"isActive":0,"created_at":"2022-07-02T03:46:56.000000Z","updated_at":"2022-07-02T04:14:45.000000Z"}]

这是我的Order表迁移

Schema::create('orders', function (Blueprint $table) {
$table->id();
$table->string('name')->default('guest');
$table->json('data');
$table->boolean('isActive')->default(1);
$table->timestamps();
});

这是我的Order表模型

protected $fillable = ['name','data','isActive'];
protected $casts = [
'data' => 'array'
];  

我已经在我的视图上尝试了{{ $order->data[0] }}。我试图在这里显示数据。但上面写的是undefined array key 0

所以我用{{print_r(array_keys($order->data))}}检查它,这就是它返回的Array ( [0] => 2 [1] => 6 [2] => 3 ) 1

我希望数据像这样显示

Ice Latte (2)
Ice Lemon Tea (1)
Ice Chocolate (1)

您需要将$order的索引定义为:

{{ $order[0]->data; }}

在视图中使用循环。

@foreach($orders as $order)
{{ $order->name }}
...
// other order keys
@endforeach

尝试array_values代替array_keys

array_values($order->toArray());

array_values($order);

我刚刚得到了答案。

@foreach($order['data'] as $d)
<p>{{ $d['name'] }} ({{ $d['quantity'] }})</p>
@endforeach

最新更新