2017-10-13 9 views
1

私は方法があります:なぜforeachはlaravelに1つの値だけを出力しますか?

public function winnerDetails() 
{  
    $winners = DB::table('winners')->get(); 
    //dd($winners); 
    foreach ($winners as $winner) { 
     $qrMainId = $winner->qrdetails_id; 
    } 
    dd($qrMainId); 
} 

dd($winners);arrayの値に戻りますが、私はforeachそのひとつ返す値を使用します。 foreachループで誰が価値を返すのですか?

dd($winners)出力:

enter image description here

dd($qrMainId);返り値1 44。しかし配列35の別の値を返さなければなりません。前もって感謝します。あなたはLaravelの方法でこのタスクを実行したい場合は、キーの配列をマッピングするためにPluckのメソッドを使用するIDの使用

foreach ($winners as $winner) { 
    $qrMainId[]= $winner->qrdetails_id; 
値だけで使用するために

$qrMainId=''; 
    foreach ($winners as $winner) { 
    $qrMainId.= $winner->qrdetails_id; 
+3

それぞれの 'foreach()'ループで '$ qrMainId'の値を上書きしています。すべての値が必要な場合は、値を配列に保存するか、文字列値を連結する必要があります。 – Sean

答えて

1

あなたが望むこと

<?php 
public function winnerDetails() 
{  
    $winnersId = DB::table('winners')->get()->pluck('qrdetails_id'); 
    dd($winnersId); 
} 
+0

私はちょうど配列ではない値が欲しいです。配列を返します。 –

+0

'$ qrMainId'は' dd($ qrMainId);と出力します。 –

+0

は返されません。私はちょうどこのような値が欲しい:https://prnt.sc/gx4exu –

0

の配列を取得するには

+0

私は知っているが、それは配列として返されます。しかし、私は値のコレクションが欲しい。 –

+0

Laravel Collectionを意味しますか? – OsDev

+0

はい私はlaravelコレクションhttps://prnt.sc/gx4exuを意味します –

0

私はあなたがここでララベルの力を活用していないと思います。明らかに、私はあなたが何をしようとしているのか分からないが、ここにいくつかの指針がある。

winnersテーブルのためにmodelを作成する必要があります。現在使用しているDBファサードと同じように、Laravelリターンコレクションでモデル化してください。コレクションクラスには、pluck

のように簡単になり、あなたは自分のIDの配列を取得するような便利なヘルパーの多くが含まれています。

そして、あなたは区切らたり、implode

を使用することができますし、Winner::all()->implode('id',',');

0

$ qrMainIdは変数ではない配列で取得するだろうとのようなものコンマそれらを取得したいと思います。

ループごとにforeachで変更されます。

あなたのコードは常に配列の最後の要素を持っています。

$qrMainId[] = $winner->qrdetails_id; 

またはSQLを直接したいフィールドを選択するような値を収集するために、配列を使用してください。

関連する問題