2015-05-06 10 views
11

Obecnie jest to mój widokLaravel: Jak przeanalizować dane JSON w widoku ostrza?

{{ $leads }} 

I to jest wyjście

{"error":false,"member":[{"id":"1","firstName":"first","lastName":"last","phoneNumber":"0987654321","email":"[email protected]","owner":{ 
"id":"10","firstName":"first","lastName":"last"}}]} 

Chciałem, aby wyświetlić coś takiego

Member ID: 1 
Firstname: First 
Lastname: Last 
Phone: 0987654321 

Owner ID: 10 
Firstname: First 
Lastname: Last 

Odpowiedz

16

To całkiem proste. Przede wszystkim wysłać do widoku dekodowane zmienna (patrz Laravel Views):

view('your-view')->with('leads', json_decode($leads, true)); 

Następnie wystarczy użyć typowych konstrukcji łopatek (patrz Laravel Templating):

@foreach($leads['member'] as $member) 
    Member ID: {{ $member['id'] }} 
    Firstname: {{ $member['firstName'] }} 
    Lastname: {{ $member['lastName'] }} 
    Phone: {{ $member['phoneNumber'] }} 

    Owner ID: {{ $member['owner']['id'] }} 
    Firstname: {{ $member['owner']['firstName'] }} 
    Lastname: {{ $member['owner']['lastName'] }} 
@endforeach 
3

w kontrolerze tylko konwersji danych JSON do obiektu przy użyciu json_decode funkcja php taka jak ta

$member = json_decode($json_string); 

and pass to view in view 

return view('page',compact('$member')) 

w widoku łopatki

Member ID: {{$member->member[0]->id}} 
Firstname: {{$member->member[0]->firstname}} 
Lastname: {{$member->member[0]->lastname}} 
Phone: {{$member->member[0]->phone}} 

Owner ID: {{$member->owner[0]->id}} 
Firstname: {{$member->owner[0]->firstname}} 
Lastname: {{$member->owner[0]->lastname}} 
4

Można użyć json dekodowania następnie dostać tablicę php, i stosować tę wartość jako swój własny sposób

<?php 
$leads = json_decode($leads, true); 
dd($leads); 
2

połów wszystko dla mnie bierze obiektu, kodującego go, a następnie przechodzi w ciąg ja Tag vascript script. Aby to zrobić, musisz wykonać kilka wymian.

Pierwszy zastąpić każdą \ z podwójnym ukośnikiem \\ a następnie co cytatem " z \".

$payload = json_encode($payload); 
$payload = preg_replace("_\\\_", "\\\\\\", $payload); 
$payload = preg_replace("/\"/", "\\\"", $payload); 
return View::make('pages.javascript') 
    ->with('payload', $payload) 

Następnie w szablonie ostrza

@if(isset($payload)) 
<script> 
    window.__payload = JSON.parse("{!!$payload!!}"); 
</script> 
@endif 

To w zasadzie pozwala na wykonanie obiektu na stronie php, a następnie mieć obiekt na stronie javascript.

Powiązane problemy