2016-05-30 6 views
0

データベースからデータを収集して印刷するWebアプリケーションを開発しています。私はLaravelフレームワークを使用しています。私はコードの使用を以下に示しました。私は私のPHPコードにJSONレスポンスを直接表示できますが、JSONレスポンスを反復しようとすると何も得られません。ここでLaravelフレームワークを使用したPHPでのJSONレスポンスの出力

は、私はLaravelファサードライブラリを使用してJSONオブジェクトを生成する方法である:ここでは

$worklogs = Response::json($data, $this->getStatusCode(), $headers); 

は、私はPHPのページにデータを渡すために使用されるコードです:

return view('index')->with('worklogs', $worklogs); 

私は印刷することができます次のコードを使用してPHPページからデータを収集しました:

{{ $worklogs }} 

しかし、私はそれを繰り返し実行しようとするとforeachループを歌う、示すように、エラーが発生します。PHPページで

error captured

を、これは私がそれをコード化する方法ですが、それが動作していない: captured index.blade.php file portion

+0

最初にjsonエンコードする必要はありません。 – jardis

+1

なぜ '' 'Response :: json'''を使って' '' view() '' 'を返すのですか? – xdevnull

+0

コードの画像を投稿することは、コード自体をテキストとして投稿するよりも有用ではありません。 –

答えて

0

まず第一にボグダンBocioacaとしては、あなたが(他のアプリがあなたのJSONデータにアクセスできるように、ほとんどのAPIのため)のみJSONを返すようにしたいときにのみ、Response::json機能を使用する彼の答えで述べています。

を:たとえば、以下のコードを使用すると、次のようにあなたのコードが理想的でなければなりませんので、ビューにデータを直接渡したいあなたの質問の私の理解では、モバイルアプリ

$worklogs = WorkLog::all(); 
return Response::json([ 
    'worklogs' => $worklogs 
], $headers); 

によって読まれるかもしれないJSONを返します

$worklogs = WorkLog::all(); 
return view('index',compact('worklogs')); 

(上記の私はそのクリーンなのでcompact()の代わりwith->()を使用することを選択したことに注意してください)

あなたが望んでいたとしてその後、あなたはあなたのコードを反復処理することができます。

を210
@foreach($worklogs as $worklog) 
    <td>{{$worklog->id}}</td> 
    <td>{{$worklog->name}}</td> 
    <td>{{$worklog->company}}</td> 
@endforeach 
+0

私はあなたの方法を試したと思ったが、私は前に何か間違っていたに違いないと思う。 – Lakie

+0

私はJSONを返すAPIを作っていました。私はウェブとモバイルアプリを作っています。どちらもこれらのAPIを使用しています。だから、返されたjsonをビューとモバイルアプリの両方に使いたいと思っていました。だから私は私の見解のためにjsonを変換したかった。データベース配列に直接データを渡すのは正しい/安全な方法です。私は特定のデータをモデルに渡すことを許可していることに注意してください。私が試していたことは、このように収集したデータをモデルに入れてビューのモデルを渡すことだったので、これはより良い方法ですか? – Lakie

1

私は理解していません...このすべての 最初は、あなたがJSONを返す方法を示します。

return Response::json([ 
    'hello' => $value 
], $headers); 

第二:あなたは、JSONを繰り返す何を意味するのですか? 3番目:エラーメッセージに、未定義の変数$ datas .. $ data、$ datasではないことが示されています。 $ data paramをビューに送りますか?

関連する問題