php 在blade中显示json类型数据

6ie5vjzr  于 2022-12-28  发布在  PHP
关注(0)|答案(3)|浏览(433)

在刀片中显示json类型数据我的DB中有一个表,我在其中存储数据,其中一个数据是json类型的,对我来说一切都很顺利,但当我想在刀片中显示这些json时问题就出现了这是我的json数据类型[![在此处输入图像描述][1]][1]
在我的blade中,我用php进行查询,提取并显示具有相同订单ID的所有数据,但我希望在foreach中显示json数据

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

在第二个foreach中,我想显示json数据,但没有显示任何数据
编辑:
In the second foreach where I want to show the json data does not show me any data y creo que es porque llamo mallos datos porque al hacer lo recomendado没有我的信息

[{"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"}]
pcww981p

pcww981p1#

您需要使用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)
            <h1>{{ $documen->partidas_id }}</h1>
        @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)
            <h1>{{ $documen['partidas_id'] }}</h1>
        @endforeach
    @endif
@endforeach

更好的选择是在Eloquent Model的$cast属性中定义该行为。
一个一个二个一个一个一个三个一个一个一个一个一个四个一个

mwkjh3gx

mwkjh3gx2#

如果您使用模型,并且该列的类型为json,而不是使用DB:查询构建器列将被视为Laravel(和刀片)内的数组
然后你可以把它当作一个标准数组。

@foreach($tareasco as $audi)
   <!-- your looped items -->
@endforeach

我发现依靠口才和榜样是一个很好的做法

chhkpiq4

chhkpiq43#

如果需要在foreach中以JSON形式访问它,则应该像Object而不是数组一样访问它。

<h1>{{$documen->partidas_id}}</h1>

供您参考

当我们使用LaravelFramework时,我们不在视图中编写fetch命令,如下所示

<?php
    $order[] = $ord_com->id;
    $tareasco = DB::table('tareas')->whereIn('orden_compra_id',$order)->orderBy('created_at','desc')->get();
?>

我们使用MVC(ModelVviewCcontrollr)架构来操作数据。

相关问题