Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么我的收藏在发送时是空的?_Php_Html_Laravel_Laravel 5 - Fatal编程技术网

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

Php 为什么我的收藏在发送时是空的?,php,html,laravel,laravel-5,Php,Html,Laravel,Laravel 5,我正在使用Laravel 5,我的控制器中有以下方法: /** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function show($id) { $authUser = Auth::user(); $sharesList = Group::find($id)->shares->sortByDesc(

我正在使用Laravel 5,我的控制器中有以下方法:

/**
 * 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]);
}
/**
*显示指定的资源。
*
*@param int$id
*@return\light\Http\Response
*/
公共活动展览($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作为$postGroup){
$commentsList=$postGroup->commented;
//dd($commentsList);
}
//dd($commentsList);
返回视图('Pages.Group.detail',['sharesList'=>$sharesList',groupList'=>$groupList,'theGroup'=>$Group',postList'=>$postList',commentsList'=>$commentsList]);
}
问题是
$commentsList
集合,如果我在@foreach中放置
dd($commentsList)
的话,我可以看到里面有我想要的元素,但是如果我将
dd($commentsList)
放在foreach之外(在@endforeach之后)$commentsList是空的,并且它到达我的HTML页面时是空的,我该如何解决呢? 我试着把
$commentsList,但仍不工作

编辑

  • 如何获取我的数据:
  • 我得到的(我不想要的):

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

/**
 * 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]);
}
/**
*显示指定的资源。
*
*@param int$id
*@return\light\Http\Response
*/
公共活动展览($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作为$postGroup){
foreach($postGroup->注释为$commentPost){
$commentsList->push($commentPost);
}
}
//dd($commentsList);
返回视图('Pages.Group.detail',['sharesList'=>$sharesList',groupList'=>$groupList,'theGroup'=>$Group',postList'=>$postList',commentsList'=>$commentsList]);
}

正如您在注释中提到的,您需要数组集合,因此首先初始化注释列表:

$commentsList = [];
然后:

foreach ($postsGroups as $postGroup) {
    $commentsList[] = $postGroup->commented;
}

只是说你在数组声明中缺少了$。@aurelian我尝试了你的解决方案,我做了一个
dd($commentsList)查看,但它返回给我一个集合数组,这不是我想要的,我直接需要集合。此外,在这种情况下,它返回给我,额外集合为空,这是错误的。更准确地说,我需要一个数组集合,而不是集合数组。很抱歉,它似乎是push而不是add。我更新了答案。我更清楚你现在需要什么。我更新了我的答案。您的评论“我需要一个数组集合”有误导性,因为实际上您需要的是一个对象集合。