php - 为什么我的收藏在发送时是空的?

标签 php html laravel laravel-5

我正在使用 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 循环之前,但仍然无法正常工作。

编辑

最佳答案

当你应该添加一个新的数组元素时,你正在用每个循环覆盖它。试试这个:

/**
 * 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/

相关文章:

javascript - 如何使用 else 函数设置未登录用户的登录链接?

html - 如何仅在第三行之后设置 `text-overflow: ellipsis`?

html - 负 css 行未使用 100% svg 图像正确缩放

javascript - 提交验证错误的最大和步长

php - 使用 Zend TableGateway 的 select() 时无法检索 id 值

php - Laravel 错误 '; expected' 和 'Unexpected Unknown' 437 次

PHP 检查最不繁忙的 MySQL 服务器

javascript - 如何使用 Javascript 检测滚动超过页面开头?

php - Laravel:如果字段在传递到 `view` 之前有值,请检查 Controller

php - 如何使 Laravel 对输入数组进行唯一验证?