display json type data in a blade
I have a table in my DB where I store data and one of those data is of the json type, and everything goes well for me, but the problem starts when I want to display those json in a blade
this is my json data type
[![enter image description here][1]][1]
where in my blade I make the query with php that all the data that has the same id of an order is extracted and displayed but I want to display the json data where I do this foreach
<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>
in the second foreach where I want to show the json data does not show me any data
EDIT:
in the second foreach where I want to show the json data does not show me any data y creo que es porque llamo mal los datos porque al hacer lo recomendado no me muestra nada
[{"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"}]
3
Answers
If you use the Model and that column is of type json instead of using the DB: query builder the column will be seen as an array inside Laravel (and the blade)
Then you can just treat it like a standard array.
I find its good practice to rely on the Eloquent and Models
You need to either use
json_decode
to turn that json array into an array of arrays (json_decode($json, true)
) or an array of objects (json_decode($json)
)A better option would be to define that behavior in the
$cast
property of an Eloquent Model.If you need to access it as JSON in
foreach
, you should access it like an Object, not an array.For Your Information
When we use Laravel Framework, we don’t write fetch commands in view. like this
We use MVC (Model View Controllr ) architecture to manipulate data.