2016-07-29 58 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.