Rumah > Soal Jawab > teks badan
Paparkan data jenis json dalam bilah Saya mempunyai jadual dalam pangkalan data saya yang menyimpan data dan salah satu data adalah jenis json dan semuanya berjalan lancar tetapi apabila saya ingin memaparkan json ini dalam bilah masalahnya bermula Ini adalah jenis data json saya [![Masukkan huraian imej di sini][1][1]
Dalam bilah saya, saya menggunakan php untuk bertanya, mengekstrak dan memaparkan semua data dengan id pesanan yang sama, tetapi saya mahu memaparkan data json semasa melakukan ini
<div class="modal-body"> <?php $order[] = $ord_com->id; $tareasco = DB::table('tareas')->whereIn('orden_compra_id',$order)->orderBy('created_at','desc')->get(); ?> @foreach($tareasco as $audi) {{ $audi->componente_id }}<!--here it shows me everything ok--> @if (is_array($audi->componente_id) || is_object($audi->componente_id)) @foreach ($audi->componente_id as $documen) <h1>{{$documen['partidas_id']}}</h1> @endforeach @endif @endforeach </div>
Tiada data dipaparkan dalam foreach kedua di mana saya ingin memaparkan data json
Editor:
Dalam foreach kedua di mana saya ingin memaparkan data json, tiada data ditunjukkan kepada saya, saya fikir ini kerana saya memanggil data yang salah, kerana apabila melakukan tindakan yang dicadangkan, ia tidak menunjukkan apa-apa kepada saya
[{"id": 9913, "cantidad": "12", "costoini": "12", "partidas_id": "1", "servicios_id": "1077", "componente_id": "1", "sub_componente_id": "1", "sub_sub_componentes_id": "1"}] [{"id": 2548, "cantidad": "2", "costoini": "123", "partidas_id": "1", "servicios_id": "1077", "componente_id": "1", "sub_componente_id": "1", "sub_sub_componentes_id": "1"}, {"id": 7555, "cantidad": "4", "costoini": "124", "partidas_id": "2", "servicios_id": "1078", "componente_id": "1", "sub_componente_id": "1", "sub_sub_componentes_id": "1"}]
P粉9365096352024-03-23 11:15:34
Anda perlu menggunakan json_decode
将该 json 数组转换为数组数组 (json_decode($json, true)
) 或对象数组 (json_decode($json)
)
@php($tareasco = DB::table('tareas')->whereIn('orden_compra_id',$order)->orderBy('created_at','desc')->get()) @foreach($tareasco as $audi) @php($componente_id = json_decode($audi->componente_id)) @if (is_array($audi->componente_id)) @foreach ($audi->componente_id as $documen){{ $documen->partidas_id }}
@endforeach @endif @endforeach
@php($tareasco = DB::table('tareas')->whereIn('orden_compra_id',$order)->orderBy('created_at','desc')->get()) @foreach($tareasco as $audi) @php($componente_id = json_decode($audi->componente_id, true)) @if (is_array($audi->componente_id)) @foreach ($audi->componente_id as $documen){{ $documen['partidas_id'] }}
@endforeach @endif @endforeach
Pilihan yang lebih baik adalah untuk menentukan tingkah laku dalam atribut $cast
model Eloquent.
class Tarea extends Model { protected $casts = [ 'componente_id' => 'array' ]; }
$tareasco = Tarea::whereIn(...)->orderBy(...)->get();
@foreach($tareasco as $audi) @if (is_array($audi->componente_id)) @foreach($audi->componente_id as $documen) {{ $documen['partidas_id'] }} @endforeach @endif @endforeach