2017-10-25 9 views
1

私はTestRunListと呼ばれるテーブルのCountを取得しようとしています。外部キーはTestrunという別のテーブルと同じです。単一testrunは、私は、各testrunlistためtestrun IDを取得するforloopをした同じページにありますが、私はこのエラーを取得動作していないようでした配列でループするときに配列としてstdClassのオブジェクトを使用できない

配列としてのタイプはstdClassのオブジェクトを使用することはできません

コントローラーのコードを聞きます

 $data = DB::table('TestRun')->get(); 
     $runs=array(); 
     for ($i=0;$i<sizeof($data);$i++) 
     { 
      $testrunID=$data[$i]['TestRunID']; 
      $Testrunlist=TestRunList::where('test_run_id',$testrunID)->count(); 
      $runs[$i]=[ 
       'Countruns'=>$Testrunlist 
      ]; 

     } 

    return view('management.testrun.testrun-list') 
     ->with('data',$data) 
     ->with('runs', $runs); 
+0

$ data-> toArray()を設定してみてください – Roots

+2

コレクションを返しています(Lloopleはすでに指摘しています)。コレクションで可能なメソッドの[非常に広範な](https://laravel.com/docs/5.5/eloquent-collections#available-methods)リストを使用して、達成したいものを達成することができます。 – Andrew

答えて

1

$dataCollectionで、あなたがあれば配列構文に

$data = DB::table('TestRun')->get(); 
$runs = []; 
$data->each(function ($row) use ($runs) { 
    $runs[] = [ 
     'Countruns' => TestRunList::where('test_run_id',$row-> TestRunID)->count() 
    ]; 
}); 

return view('management.testrun.testrun-list') 
    ->with('data',$data) 
    ->with('runs', $runs); 
+0

あなたはコレクションとして$データについて正しいです。データベースからデータを取得するために私のモデルを使用しました。それがうまくいったので、私はあなたの答えを受け入れます –

0

常に使用

print_r($data);

あれば、それのオブジェクトに実行エコー$データ - >ユーザー名を使用してアクセスすることはできません配列を実行するecho $ data ['username'];

どのようなタイプのデータを扱っているかわかります。

関連する問題