Laravel多对多关系查询
我正在构建一个Laravel应用程序,其中包含一个用户表和一个活动表,以及活动和用户之间的多对多关系,这些关系通过一个名为assignments的数据透视表实现:Laravel多对多关系查询,laravel,eloquent,many-to-many,Laravel,Eloquent,Many To Many,我正在构建一个Laravel应用程序,其中包含一个用户表和一个活动表,以及活动和用户之间的多对多关系,这些关系通过一个名为assignments的数据透视表实现: 用户:id 活动:id 分配:id,活动id,用户id 我需要记录用户每次完成活动的时间。用户可以多次完成相同的活动。我正试图决定在数据库中对此进行建模的最佳方法。我所能看到的选项有: 表完成:id、赋值\u id 第二个数据透视表完成:id、活动id、用户id 我可以创建迁移等,但是我正在努力使用模型类及其关系方法。特别是,对于
- 用户:id
- 活动:id李>
- 分配:id,活动id,用户id
我可以创建迁移等,但是我正在努力使用模型类及其关系方法。特别是,对于上面的第一个选项,我将如何定义所需的模型类和关系方法?好的,除了活动跟踪之外,几乎所有内容都已排序。因此,以下是我的建议: 用户表 列id、名称、电子邮件等 活动表 列id、名称等 用户活动表(透视) 具有列id、用户id、活动id等 此表将包含用户和活动之间的多对多映射 活动跟踪 列id、用户活动id、状态、更新时间等
在这里,您可以使用状态的整数值来表示完成,比如说1。使用更新的和创建的,您可以跟踪活动的开始和完成时间。创建
活动用户
表,只需添加活动id
和用户id
。此操作不需要id列。然后将这些代码添加到用户模型:
public function activity()
{
return $this->belongsToMany('App\Activity', 'activity_user', 'user_id', 'activity_id');
}
如果我理解正确,就不需要其他任何东西了