2016-07-29 6 views
-3

私はこのforeachループがあります。Laravelはforeach内のレコードを1つだけ返しました。どうして?

$productStan = product::all(); 
foreach ($productStan as $stan) { 
    return $date = $stan->stan_key; 
}  

をそしてこれが私のテーブルproductsです: enter image description here

これは、すべてのレコードであるから:

return $productStan; 

[{ "ID":1 "stan": "ユーザ3"、 "article_id":1、 "category_id":1、 "sn": "1111"、 "quantity":12、 "user_id"保証 ":" 2016-07-27 "、" created_at ":" 2016-07-27{"id":2、 "user_id":1、 "stan":2、 "stan_key"}:{"22:45:36"、 "updated_at": "2016-07-29 08:55:38" 2、 "category_id":2、 "sn": "8sd8adada9d08ada90d89"、 "quantity":20、 "warranty": "2016-07-28"、 "created_at": "2016 -07-28 午前18時33分20" 秒、 "updated_atの": "2016年7月28日午前18時33分20秒"}]

私は $date変数返さたい

、Laravelは一つだけのレコードを返す: ユーザー、3 しかし、私が代わりにreturnこのようなechoを書く:

echo $date = $stan->stan_key; 
01私はテーブル productsからすべてのレコードを返さなければなりません、私の方法では、2

ユーザー、3user:

Laravelは正しい二つのレコードを返しました。

私が間違っていることは、laravelがLATESTレコードのみを返し、すべてのレコードを返していないことです。

+3

「リターン」は、メソッドを終了し、指定された値を返すので、それが2回目の繰り返しになることはありませんを意味します。 – Bert

答えて

1

最初の繰り返しでreturnステートメントが発生し、プログラムが終了するためです。

を直接実行し、データを表示/使用したいループを実行することができます。

1

複数のアイテムを返すには、配列を返す必要があります。

  $productStan = product::all();  
      $date = array(); 
      foreach ($productStan as $stan) { 
       $date[] = $stan->stan_key; 
      } 
      return $date; 
+0

ありがとう、Laravelは["user、3"、 "user、2"]の形式でレコードを返しました。このレコードをどのように変更できますか:user、3user、2? – major697

0
$productStan = product::all();  
     $date = array(); 
     foreach ($productStan as $stan) { 
      $date['id'] = $stan->stan_key; 
     $date['uid'] = $stan->user_id; 
    $date['aid'] = $stan->artical_id; 

       } 

    print_r($date); 
    return Statement doesn`t seems accurate here. You have records in $date array, now you can play around it. 
関連する問題