当前位置: 首页 > 知识库问答 >
问题:

laravel-3步多对多关系

上官凯歌
2023-03-14

我有3个标签:用户、教师和帖子。

用户:
id-integer
name-string

教师:
id-integer
教师id-integer
用户id-integer
姓名-string

帖子:
id-integer
user\u id-integer
title-string


用户模型:

class User extends Model
{
  public function teachers()
  {
    return $this->hasMany('App\Teacher');
  }
}


教师模式:

class Teacher extends Model
{
  public function posts()
  {
    return $this->hasMany('App\Post', 'user_id','teacher_id');
  }
}


??问题是我如何使用这样的东西:

$user = User::find(1);
$teacher_posts = $user->teachers()->posts

共有1个答案

梁成双
2023-03-14

我对拉威尔有点陌生,但这是我的看法。

我意识到,通常情况下,多对多关系需要一个数据透视表。

用户:(id,名称)

教师:(身份证,教师证,姓名)

教师用户:(id,用户id,教师id)

帖子:(id,用户id,标题)

你那些能言善辩的模特会像这样。

class User extends Model
{
  public function teachers()
  {
    return $this->belongsToMany('App\Teacher');
  }

  public function posts()
  {
    return $this->hasMany('App\Post');
  }
}


class Teacher extends Model
{
  public function users()
  {
    return $this->belongsToMany('App\User');
  }
}

$user = User::find(1);
$user_posts = $user->posts();

有关更多详细信息,请查看此处的文档

 类似资料:
  • 我在一个laravel控制器中运行以下代码, 但是我似乎从服务器上得到了以下错误, {“error”:{“type”:“ErrorException”,“message”:“preg_replace():参数不匹配,模式为字符串,而替换为数组”,“file”:“/Users/S/Sites/app api/vendor/laravel/framework/src/illumb/Support/he

  • 我在Books表和Authors表之间有多对多的关系。透视表(author_book)包含author_id和book_id。

  • 这是项目迁移 这是时间表 这样用户就可以迁移了 这是我的项目模型 这是我的时间表模型: 这是我的用户模型 现在,我从项目返回我的查询 这是可以的,但user_id用户在timesheets.user_id我不能得到它的时间表,并得到它 此控制器按时间表中的项目id返回项目和时间表,但时间表中的用户id我不知道如何将其输入系统

  • 如果我尝试以下操作,则页面正在加载: 有以下表格:-用户-user_department-部门 数据透视表用户\u部门有两个外键:-部门\u id-用户\u id 在我的用户模型中: 在我的部门模型中: 顺便说一下:以下代码正在工作: 但是我无法在不破坏我的页面的情况下获得用户的部门。 有什么想法吗?

  • 我目前正在用Laravel构建我的第一个应用程序,我偶然发现了一个问题,即我不知道如何设置模型(用户和组)之间的多对多关系。 我已经创建了一个板,其中存储了所有用户和他们所在的组之间的关系。我的问题是,我不知道如何访问和设置这在Laravel。我不确定我是否必须用户has很多或属性。 我正试图找到一种方法,将用户添加到组中,以便在UserGroups表中创建一个新条目。 我的桌子: 用户 ID 集

  • 表朋友:id、用户id、朋友id。 表用户配置文件:id、用户id、名字。。。 如何通过雄辩的ORM获得用户的朋友列表? 用户id:5 |朋友id:6 user_id: 6|friend_id5 类似问题: 与拉拉维尔的友谊系统:多对多关系 拉维尔 我无法理解是谁调用了getFriendsAttribute()方法。 以及如何做到这一点查询生成器。 谢谢