关于 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。这样理解对不对?
    感谢!

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 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年前 评论

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