2016-10-13 21 views
-2
for($i=1;$i<=3;$i++) 
    { 
     $data=DB::table('for_test') 
     ->where('for_test.id','=',$i) 
     ->distinct() 
     ->get(); 
    } 

すべてのループで 'for_test'テーブルとは異なる行が選択されます。しかし、私はそれらを保存することはできません。どうすればそれらを保存できますか?私が書くときの例としてクエリ結果をlaravelの配列に格納する方法

foreach ($data as $datas) { 
     echo $datas->name; 
    } 

どのようにして3つの値を得ることができますか?

答えて

2

ループの繰り返しごとに$data変数を上書きしています。その代わり、$data配列を作成し、それに追加:

$data = []; 
for ($i = 1; $i <= 3; $i++) { 
    $data[] = DB::table('for_test') 
     ->where('for_test.id','=',$i) 
     ->distinct() 
     ->get(); 
} 

をしかし、あなたはまた、(私はあなたのコードは単なる一例である疑いが)、単一のクエリでこれを行うことができるかもしれない:

$data = DB::table('for_test') 
    ->whereIn('for_test.id', [1, 2, 3]) 
    ->distinct() 
    ->get(); 
関連する問題