gpt4 book ai didi

php - Laravel 中间表

转载 作者:行者123 更新时间:2023-11-30 22:31:47 24 4
gpt4 key购买 nike

我在 Webapp 中工作,但在使用中间表时遇到问题,这些是我在 mysql 中的表:

用户:

  • 整数:id
  • 字符串:姓名
  • 字符串:邮箱
  • 字符串:电话

练习:

  • 整数:id
  • 字符串:姓名
  • 字符串:描述

用户练习:

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

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

我想创建一个模型来处理 user_exercise 的表,但我不知道是否有更好的方法。

那么,有一些方法可以在不创建新模型的情况下做到这一点吗?

PD:抱歉我的英语不好

最佳答案

User_Exercise 不需要单独的模型

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

注意:

对于插入过程,您可以通过以下方式获取父ID

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

然后

$insertUser->id 获取最后插入的 id

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

示例

在你的 User 模型中加入这个

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

然后像这样从任何 Controller 获取你需要的数据

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

关于php - Laravel 中间表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33700228/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com