現在、これは私の見解です
{{ $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
とても簡単です。まず、ビューにデコードされた変数に送信します( 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
laravel 5.5なので@json($ leads)を使用できるようです
あなたはjsonデコードを使用してphp配列を取得し、その値を独自の方法として使用することができます
<?php
$leads = json_decode($leads, true);
dd($leads);
コントローラでは、このような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}}
私にとってのすべてのキャッチは、オブジェクトを取得し、それをエンコードし、文字列を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側でオブジェクトを取得できます。
そのような場合は、このようにすることができます
@foreach (json_decode($leads->member) as $member)
{{ $genre }}
@endforeach
$を削除してコンパクトなメソッドにすると、
return view( 'page'、compact( 'member'))
データがモデルからのものである場合、次のことができます。
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