Laravel 4 - décodage json en vue

J'ai été récemment à expérimenter avec Laravel 4, qui jusqu'à présent a été une joie à utiliser. Cependant, je rencontre un problème, pas avec Laravel 4, mais plutôt ma propre incapacité.

J'ai une base de données contenant les 3 lignes avec 4 cols. Par exemple, disons que les colonnes sont:

content_id,
content_type,
content_data,
timestamp

La 'content_data' colonne contient un JSON codé tableau de l'ordre de 4 paires clé-valeur.

Quand je récupérer ces lignes à partir de la base de données (à l'aide Éloquent) et de transmettre les données dans mon point de vue, comment puis-je également parser le JSON dans ma lame modèle?

Après la recherche et de référence de la Laravel documentation, ma pensée est que vous ne pouvez pas, alors j'ai essayé de décoder le JSON de retour dans un tableau à l'intérieur de ma manette, puis le passer à mon avis.

Jusqu'à présent, j'ai essayé de la suite dans ma classe:

<?php
class PageController extends \BaseController {

public function index()
{

    $data = Content::
        ->where('content_type', 1)
        ->get();

    foreach($data as $content)
    {
        $items[] = json_decode($content->content_data);
    }

    return View::make('pages.page2')
        ->with('data', $data)
        ->with('items', $items);
}
}

Cependant dans ma Lame modèle, quand je lance une boucle foreach pour parcourir en boucle l'extrait lignes, j'ai essayé de lancer une autre boucle foreach dans la première qui passe en boucle à travers l' $les éléments de matrice à extraire de leurs valeurs, mais parce que c'est une boucle dans une boucle, je reçois en double json valeurs.

Ma lame modèle ressemble à ceci:

@extends('layouts.pages');

@section('content_body')
<h1>My <span>title</span></h1>

<div class="column col-1">
    <ul>
        {{ -- loop through the database rows -- }}
        @foreach($data as $row)

            {{ -- loop through the json decoded values -- }}
            @foreach($items as $item)

                {{ $item['title'] }}

            @endforeach

        @endforeach
    </ul>
</div>
@stop

Ne sais pas si je l'ai expliqué correctement, mais, fondamentalement, je veux juste être en mesure d'analyser mon json codé tableau dans la boucle qui affiche les extraits db lignes

J'espère que cela fait sens pour quelqu'un qui peut aider.

Essayez $content->content_data = json_decode($content->content_data).
Donc vous voulez dire effectuer la boucle foreach dans mon contrôleur, mais au lieu d'affecter la json_decoded valeurs en dollars des éléments de tableau, je dois l'attribuer à $contenu->content_data?
Je vais l'essayer, vous ne savez pas ce qu'est la question.
Merci d'essayer, mais il ne fonctionne pas. Il récupère uniquement la dernière ligne de l' $data_content de la colonne, c'est pourquoi je l'ai mis dans un tableau.

OriginalL'auteur Goonyan Harir | 2014-01-19