中间表与Laravel

时间:2015-11-13 19:17:18

标签: php mysql laravel

我正在使用Web应用程序,我在使用中间表时遇到问题,这些是我在mysql中的表:

用户:

  • 整数:ID
  • 字符串:名称
  • 字符串:电子邮件
  • 字符串:电话

练习:

  • 整数:ID
  • 字符串:名称
  • 字符串:描述

User_Exercise:

  • 整数:ID
  • 整数:id_user
  • 整数:id_exercise
  • 整数:记录

所以,我想要做的是,当我创建一个练习时,为每个用户创建一行,并使用之前创建的exercise-id。之后用户可以在此练习中更改他的记录。

我曾想过创建一个模型来处理user_exercise的表,但我不知道是否有更好的方法可以做到这一点。

那么,如果不创建新模型,有一些方法可以做到这一点吗?

PD:抱歉我的英语很糟糕

1 个答案:

答案 0 :(得分:0)

您不需要User_Exercise

的单独模型

您可以使用基本模型中的$this->belongsToMany,即User

Note :

对于插入过程,您可以通过

获取父ID

$insertUser = User::create($userData);

然后

$insertUser->id用于获取最后一个插入ID

然后根据User_Exercise进行检索,您将使用$this->belongsToMany模型中的User

示例

User模型

中使用此功能
public function getUser() {
return $this->belongsToMany('App\User', 'excercise_name', 'user_id', 'excercise_id')->select(array('exercise.id', 'excercise.name'));
}

从任何控制器中获取所需的数据

$userData = User::find($userId)->getUser;