关于 belongsToMany 的几个问题,非常迷惑

  1. 文档里说:
    关于belongsToMany的几个问题,非常迷惑
    比如本章的例子里,如果用$this->belongsToMany(User::Class);,表名就是user_user。这个user_user也得事先用migration创建吗?还是$this->belongsToMany(User::Class);自动创建这个表?
  2. 如果不传第3和第4个参数,也就是不自定义列名,那默认的列名是什么格式呢?还用上面的例子,$this->belongsToMany(User::Class);里的2列的名字是user_id和user_id吗?
  3. 类似问题1,如果不传第3和第4个参数,也就是不自定义列名,那$this->belongsToMany(User::Class);会自动创建这2列吗?还是必须提前在migration文件里把这2列创建好?
  4. 本章传入了第2,3,4个参数,所以命令是$this->belongsToMany(User::Class, 'followers', 'user_id', 'follower_id');。我想问必须传入第2,3,4个参数吗?都使用默认的行不行?比如说,
    `public function followers()
    {
    return $this->belongsToMany(User::Class);
    }

    public function followings()
    {
    return $this->belongsToMany(User::Class);
    }`
    这样行不行?
    我目前的理解是不行。因为产生的2列会使用相同的名字,比如user_id。这样理解对不对?
    感谢!

《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 2

user_user什么鬼?
楼主只看英语文档没看懂?试试中文文档
答案在文档里
后面的参数文档里有说

4年前 评论
小李世界 3年前

1:你的第一个问题,我觉得可以看一下,laravel的文档关于模型关联的内容,你说的user_user是默认这个规则,但是前提是你要按这个规则定义表(就是你说的migration创建),才可以这样使用,显然课程这个地方不是这样定义的规则,中间表是followers并不是user_user。
2:你的第二个问题,我认为你看一下,文档就明白了,这个地方文档里面的例子是user表,role表,role_user表,对应第3和第4个参数其实为,user_id,role_id这是默认的,如果你不按默认规则创建表,这个地方你是要写上这两个参数的。
3:是要创建的。
4:这个地方肯定要传的,因为user_id和follower_id这两个字段不是默认的。

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!