2017-10-25 1 views
1

Ich versuche, Count einer Tabelle namens TestRunList zu erhalten, die den Fremdschlüssel die gleiche wie eine andere Tabelle namens Testrun bedeutet, ich möchte, wie viele testrunlist das zählen einzelne Testfahrt hat in der gleichen Seite ich ein forloop tat Testfahrt-ID für jeden testrunlist zu bekommen, aber es schien nicht, dass ich diesen Fehler an die ArbeitObjekt des Typs stdClass kann nicht als Array beim Schleifen mit Array verwendet werden

Kann nicht Objekt des Typs stdClass als Array verwenden

Heres mein Code in der Steuerung

 $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

Versuchen Sie, $ data-> toArray() – Roots

+2

einzustellen Es gibt eine Sammlung zurück (wie Lloople bereits darauf hingewiesen hat). Sie können die [ziemlich umfangreiche] (https://laravel.com/docs/5.5/eloquent-collections#available-methods) Liste der Methoden, die für Sammlungen möglich sind, verwenden, um zu erreichen, was auch immer Sie erreichen möchten. – Andrew

Antwort

1

$data ist ein Collection, können Sie Zugriff auf nicht-Array-Syntax

$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

Nun, Sie haben Recht, weil $ Daten Sammlung sind, also habe ich mein Modell benutzt, um Daten von der Datenbank zu bekommen, und es hat funktioniert, also werde ich Ihre Antwort akzeptieren –

0

Verwenden Sie immer

print_r($data);

zu verwenden, wenn es Objekt Lauf echo $ Data- ist> Benutzername, wenn array run echo $ daten ['username'];

Sie wissen also, um welche Art von Daten es sich handelt.

Verwandte Themen