我不确定这是否真的是一个laravel问题,但是,当我dd(死亡和转储)这个dd($ user-> friends());我得到以下内容。我注意到它是一个集合。我不确定这是否意味着不同的东西。但它仍然应该是我相信的一系列项目。第一个用户位于[0]标记,下一个[1]等等......
Collection {#184 ▼
#items: array:2 [▼
0 => User {#189 ▼
#table: "users"
#fillable: array:7 [▶]
#hidden: array:3 [▶]
#connection: null
#primaryKey: "id"
#perPage: 15
+incrementing: true
+timestamps: true
#attributes: array:11 [▶]
#original: array:13 [▶]
#relations: array:1 [▶]
#visible: []
#appends: []
#guarded: array:1 [▶]
#dates: []
#dateFormat: null
#casts: []
#touches: []
#observables: []
#with: []
#morphClass: null
+exists: true
+wasRecentlyCreated: false
}
1 => User {#190 ▼
#table: "users"
#fillable: array:7 [▶]
#hidden: array:3 [▶]
#connection: null
#primaryKey: "id"
#perPage: 15
+incrementing: true
+timestamps: true
#attributes: array:11 [▶]
#original: array:13 [▶]
#relations: array:1 [▶]
#visible: []
#appends: []
#guarded: array:1 [▶]
#dates: []
#dateFormat: null
#casts: []
#touches: []
#observables: []
#with: []
#morphClass: null
+exists: true
+wasRecentlyCreated: false
}
]
}
那么当我尝试做类似的事情时:
foreach($user->friends() as $friend) {
dd($friend);
}
这是我在做完之后得到的:
User {#189 ▼
#table: "users"
#fillable: array:7 [▶]
#hidden: array:3 [▶]
#connection: null
#primaryKey: "id"
#perPage: 15
+incrementing: true
+timestamps: true
#attributes: array:11 [▶]
#original: array:13 [▶]
#relations: array:1 [▶]
#visible: []
#appends: []
#guarded: array:1 [▶]
#dates: []
#dateFormat: null
#casts: []
#touches: []
#observables: []
#with: []
#morphClass: null
+exists: true
+wasRecentlyCreated: false
}
我希望它遍历所有用户而不仅仅是第一个用户。有没有理由这样做。我是在做foreach错误还是与收集有关?
答案 0 :(得分:2)
当您执行$array = array_values($array);
$new_array = array();
foreach($array as $row){
$new_array[$row['title']] = $row['title'];
}
时,由于foreach
,您只能看到一个条目。请记住,它是“转储和死亡”,所以在第一次迭代时,你会丢弃记录然后死亡。
试试这个:
dd()
答案 1 :(得分:0)
对象使用echo,对于数组使用print_r,dd()方法将在第一次迭代后停止执行
foreach($user->friends as $friend) {
echo $friend->name;
}
答案 2 :(得分:-1)
如果您只想将其视为数组,请先在集合上使用toArray。例如:
$friends = $user->friends()->toArray();
foreach($friends as $friend){
...some stuff...
}
否则,请按照此处的文档使用laravel集合的功能: http://laravel.com/docs/5.2/collections