2016-07-29 77 views
-3

我有這樣的foreach循環:Laravel只返回了一條記錄。爲什麼?

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

這是我的表productsenter image description here

這是所有記錄:

return $productStan; 

[{ 「ID」:1 「USER_ID」:1, 「斯坦」:3 「stan_key」: 「用戶,3」, 「的article_id」:1, 「CATEGORY_ID」:1, 「SN」: 「1111」, 「量」:12,」保修「:」2016-07-27「,」created_at「:」2016-07-27 22:45:36「,」updated_at「:」2016-07-29 08:55:38「},{」id「:2,」user_id「:1,」stan「:2,」stan_key「: 「用戶,2」, 「的article_id」:2 「CATEGORY_ID」:2 「SN」: 「8sd8adada9d08ada90d89」, 「量」:20, 「保修」: 「2016年7月28日」, 「created_at」:「2016 -07-28 18點33分20" 秒, 「的updated_at」: 「2016年7月28日18點33分20秒」}]

,當我想返回的變量$date,Laravel只返回一個記錄: 用戶,3 但是,當我寫echo代替return這樣的:

echo $date = $stan->stan_key; 

Laravel返回正確的兩項紀錄: 用戶,3user,2

在我的方法,我必須從表products返回的所有記錄。

我做錯了什麼,laravel只返回最新記錄,並沒有返回所有記錄?

+3

「返回」意味着它結束該方法,並返回所提供的值,所以它永遠不會到第二迭代。 – Bert

回答

1

因爲在第一次迭代中遇到return語句,並且導致程序退出。

您可以直接在return $productStan上執行foreach循環,您可以在其中顯示/使用數據。

1

您需要返回一個數組才能返回多個項目。

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

謝謝,但Laravel返回記錄的形式:[「用戶,3」,「用戶,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.