Php 如何在Laravel 5.2中正确合并2个以上雄辩的集合?

Php 如何在Laravel 5.2中正确合并2个以上雄辩的集合?,php,laravel,laravel-5,eloquent,laravel-5.2,Php,Laravel,Laravel 5,Eloquent,Laravel 5.2,我现在的问题是,每当我创建两个新作业时,合并集合中的最后一个作业就会消失 // Here is the code: @foreach($user->groups as $group) <?php $all = $group->posts->merge($group->assignments)->merge($group->quizzes); $sorted = $all->sortByDesc('created_at')

我现在的问题是,每当我创建两个新作业时,合并集合中的最后一个作业就会消失

// Here is the code: 
@foreach($user->groups as $group)
    <?php
    $all = $group->posts->merge($group->assignments)->merge($group->quizzes);

    $sorted = $all->sortByDesc('created_at');
    ?>
        @foreach($sorted as $item)
        <?php
        $val = get_class($item);
            switch ($val)
        {
            case 'App\Post':
            ?>
                Post:{{$item->body}}<br>    
            <?php
                break;
            case 'App\Assignment':
                ?>
                Assignment:{{$item->title}}<br>

                <?php
                break;
            case 'App\Quiz':
            ?>
                Quiz:{{$item->body}}<br>

            <?php
                break;
        }
        ?>
    @endforeach
 @endforeach
//下面是代码:
@foreach($user->groups as$group)
@foreach($按$item排序)
帖子:{{$item->body}}
分配:{{$item->title}}
测验:{{$item->body}}
@endforeach @endforeach

那么,我如何才能正确地将各种有说服力的集合合并在一起,然后按最新的集合进行排序呢?

合并有说服力的集合时,模型的主键用于识别重复项。因此,作业将覆盖具有相同ID的帖子,然后提问将覆盖具有相同ID的帖子和作业

为了实现您想要的,您需要使用values()方法将有说服力的集合转换为由整数索引的常规集合

替换:

$all = $group->posts->merge($group->assignments)->merge($group->quizzes);


合并雄辩的集合时,模型的主键用于标识重复项。因此,作业将覆盖具有相同ID的帖子,然后提问将覆盖具有相同ID的帖子和作业

为了实现您想要的,您需要使用values()方法将有说服力的集合转换为由整数索引的常规集合

替换:

$all = $group->posts->merge($group->assignments)->merge($group->quizzes);


我有一个错误,错误是“调用null上的成员函数values()”您的组模型中是否定义了post、赋值和quizes关系?其中一个丢失,可能是关系名称输入错误是的,帖子、作业和测验模型连接到组模型,并且它们之间的关系是多对多的。同样,$Group->posts、$Group->assignments或$Group->quizzes中的一个为空,请检查它们中的哪一个并确保存在关系。其中一个丢失,否则将得到一个集合对象,而不是null。尝试dd($group->posts,$group->assignments,$group->quizzes)并检查哪一个选项即使它们是空的,我如何输出它们?。因为一旦教授创建了其中任何一个,它将自动发布在新闻提要中。我有一个错误,错误是“调用成员函数values()on null”。您的组模型中是否定义了帖子、赋值和问答关系?其中一个丢失,可能是关系名称输入错误是的,帖子、作业和测验模型连接到组模型,并且它们之间的关系是多对多的。同样,$Group->posts、$Group->assignments或$Group->quizzes中的一个为空,请检查它们中的哪一个并确保存在关系。其中一个丢失,否则将得到一个集合对象,而不是null。尝试dd($group->posts,$group->assignments,$group->quizzes)并检查哪一个选项即使它们是空的,我如何输出它们?。因为一旦教授创建了其中任何一个,它就会自动发布在新闻提要中。