Heim  >  Fragen und Antworten  >  Hauptteil

JSON-Typdaten im Blade anzeigen

JSON-Typdaten im Blade anzeigen Ich habe eine Tabelle in meiner Datenbank, die Daten speichert, und eine der Daten ist vom Typ JSON und alles läuft gut, aber wenn ich diese JSON im Blade anzeigen möchte, beginnt das Problem Dies ist mein JSON-Datentyp [![Bildbeschreibung hier eingeben][1]][1]

In meinem Blade verwende ich PHP, um alle Daten mit derselben Bestell-ID abzufragen, zu extrahieren und anzuzeigen, aber ich möchte dabei die JSON-Daten anzeigen

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

Im zweiten foreach werden keine Daten angezeigt, wo ich die JSON-Daten anzeigen möchte

Herausgeber:

Im zweiten foreach, in dem ich die JSON-Daten anzeigen möchte, werden mir keine Daten angezeigt. Ich denke, das liegt daran, dass ich die Daten falsch nenne, denn wenn ich die vorgeschlagene Aktion ausführe, werden mir nichts angezeigt

[{"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粉064448449P粉064448449234 Tage vor321

Antworte allen(1)Ich werde antworten

  • P粉936509635

    P粉9365096352024-03-23 11:15:34

    您需要使用 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

    更好的选择是在 Eloquent 模型的 $cast 属性中定义该行为。

    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
    

    Antwort
    0
  • StornierenAntwort