Maison  >  Questions et réponses  >  le corps du texte

Afficher les données de type JSON dans la lame

Afficher les données de type json dans la lame J'ai une table dans ma base de données qui stocke les données et l'une des données est de type json et tout se passe bien mais quand je veux afficher ces json dans blade, le problème commence C'est mon type de données json [![Entrez la description de l'image ici][1]][1]

Dans ma lame, j'utilise php pour interroger, extraire et afficher toutes les données avec le même identifiant de commande, mais je souhaite afficher les données json en faisant cela

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

Aucune donnée n'est affichée dans le deuxième foreach où je souhaite afficher les données json

Éditeur :

Dans le deuxième foreach où je veux afficher les données json, aucune donnée ne m'est montrée, je pense que c'est parce que j'appelle mal les données, car lorsque j'effectue l'action suggérée, elle ne me montre rien

[{"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粉064448449185 Il y a quelques jours275

répondre à tous(1)je répondrai

  • P粉936509635

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

    Vous devez utiliser 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

    Une meilleure option consiste à définir le comportement dans l'attribut $cast du modèle 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
    

    répondre
    0
  • Annulerrépondre