我正在使用 Laravel 5,我的 Controller 中有以下方法:
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
$authUser = Auth::user();
$sharesList = Group::find($id)->shares->sortByDesc('created_at');
$groupList = $authUser->groupsAsMember->where('id', '<>', $id);
$group = $authUser->groups->find($id);
$postList = Group::find($id)->posted->sortByDesc('created_at');
$postsGroups = PostGroup::where('group_id', $id)->with('commented')->get();
//$commentsList;
foreach ($postsGroups as $postGroup) {
$commentsList = $postGroup->commented;
//dd($commentsList);
}
//dd($commentsList);
return view('Pages.Group.detail', ['sharesList' => $sharesList, 'groupList' => $groupList, 'theGroup' => $group, 'postList' => $postList, 'commentsList' => $commentsList]);
}
问题出在$commentsList
集合上,如果我在@foreach 中放置一个dd($commentsList)
,我可以看到里面有我想要的元素它,但是如果我将 dd($commentsList)
放在 foreach 之外(@endforeach 之后)$commentsList 是空的并且它到达我的 HTML 页面时是空的,我该如何解决?
我尝试将 $commentsList;
放在 @foreach 循环之前,但仍然无法正常工作。
编辑
- 我想如何获取我的数据:https://imgur.com/a/kkMZtQ0
- 我得到的(但我不想要的):https://imgur.com/a/rVgx6wf
最佳答案
当你应该添加一个新的数组元素时,你正在用每个循环覆盖它。试试这个:
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
$authUser = Auth::user();
$sharesList = Group::find($id)->shares->sortByDesc('created_at');
$groupList = $authUser->groupsAsMember->where('id', '<>', $id);
$group = $authUser->groups->find($id);
$postList = Group::find($id)->posted->sortByDesc('created_at');
$commentsList = collect();
$postsGroups = PostGroup::where('group_id', $id)->with('commented')->get();
foreach ($postsGroups as $postGroup) {
foreach($postGroup->commented as $commentPost) {
$commentsList->push($commentPost);
}
}
//dd($commentsList);
return view('Pages.Group.detail', ['sharesList' => $sharesList, 'groupList' => $groupList, 'theGroup' => $group, 'postList' => $postList, 'commentsList' => $commentsList]);
}
关于php - 为什么我的收藏在发送时是空的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50178028/