Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.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 Laravel转换多维集合_Php_Laravel - Fatal编程技术网

Php Laravel转换多维集合

Php Laravel转换多维集合,php,laravel,Php,Laravel,我有一种方法,将集合存储到集合中。 问题是我得到了一个多维集合,我需要一个一维集合,这样我就可以在Laravel中使用可用的集合方法 我尝试了一个循环来转换我的多维集合,效果很好,但我想办法让它更干净一点 谢谢你的帮助和提示 $activities = new Collection(); $last = new Collection(); foreach ($this->members()->get() as $member) { $memberActivity

我有一种方法,将
集合
存储到
集合
中。 问题是我得到了一个多维
集合
,我需要一个一维
集合
,这样我就可以在Laravel中使用可用的
集合
方法

我尝试了一个循环来转换我的多维
集合
,效果很好,但我想办法让它更干净一点

谢谢你的帮助和提示

$activities = new Collection();
$last       = new Collection();

foreach ($this->members()->get() as $member)
{
    $memberActivity = Activity::where('user_id', $member->id)->get();
    $activities->add($memberActivity);
}

foreach($activities as $activity)
{
    foreach($activity as $result)
    {
        $last->add($result);
    }
}

$result = $result->sortBy('created_at');

return $result->last();

不确定你想要达到什么,但这看起来像是一种多对多的关系

从您的问题来看,您似乎有3个表
成员
活动
成员活动
,其中
成员活动
是您的数据透视表

因此,您应该有两个雄辩的模型:
成员
活动
。看

因此,您可以通过执行以下操作来访问成员活动:

$memberWithActivities=Member::with('activities')->find($memberId)

$activities=Member::find($memberId)->activities()->orderBy('name')->get()

如果要向成员添加活动,可以
附加
分离
-请参阅


注意-我还没有检查语法,但这个概念仍然适用。

1。解释模型之间的关系。2.解释您希望改进的内容或当前代码的错误。
class Member extends Model
{
  public function activities()
  {
    return $this->belongsToMany(Activity::class, 'member_activities');
  }
}

class Activity extends Model
{
  public function members()
  {
    return $this->belongsToMany(Member::class, 'member_activities');
  }
}
$member = Member::all();
foreach ($member->activities as $activity) {
    //
}