web-dev-qa-db-ja.com

Laravel:ビューブレードでこのJSONデータを解析するにはどうすればよいですか?

現在、これは私の見解です

{{ $leads }}

そして、これは出力です

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

このようなものを表示したかった

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

Owner ID: 10
Firstname: First 
Lastname: Last
16
David Alrdrin

とても簡単です。まず、ビューにデコードされた変数に送信します( Laravel Views を参照):

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

次に、一般的なブレード構造を使用します( 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
26
Maxim Lanin

laravel 5.5なので@json($ leads)を使用できるようです

https://laravel.com/docs/5.5/blade

6
mygeea

あなたはjsonデコードを使用してphp配列を取得し、その値を独自の方法として使用することができます

<?php 
$leads = json_decode($leads, true);
dd($leads);
4
Imtiaz Pabel

コントローラでは、このようなjson_decode php関数を使用してjsonデータをオブジェクトに変換するだけです

$member = json_decode($json_string); 

and pass to view in view

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

ビューブレード

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}}
3
umefarooq

私にとってのすべてのキャッチは、オブジェクトを取得し、それをエンコードし、文字列をjavascript scriptタグに渡すことです。これを行うには、いくつかの置換を行う必要があります。

最初にすべての\二重スラッシュ\\そして次にすべてのquote" とともに \"

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

次に、ブレードテンプレートで

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

これにより、基本的にphp側でオブジェクトを取得し、javascript側でオブジェクトを取得できます。

3
Funkodebat

そのような場合は、このようにすることができます

@foreach (json_decode($leads->member) as $member)
     {{ $genre }}
@endforeach
2

$を削除してコンパクトなメソッドにすると、
return view( 'page'、compact( 'member'))

1
Ahmed Mansour

データがモデルからのものである場合、次のことができます。

App\Http\Controller\SomeController

public function index(MyModel $model)
{
    return view('index', [
        'data' => $model->all()->toJson(),
    ]);
}

index.blade.php

@Push('footer-scripts')
  <script>
    (function(global){
      var data = {!! $data !!};
      console.log(data);
      // [{..}]
    })(window);
  </script>
@endpush
0
Gus