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) {
//
}