关于 belongsToMany 的几个问题,非常迷惑
- 文档里说:

比如本章的例子里,如果用$this->belongsToMany(User::Class);,表名就是user_user。这个user_user也得事先用migration创建吗?还是$this->belongsToMany(User::Class);自动创建这个表? - 如果不传第3和第4个参数,也就是不自定义列名,那默认的列名是什么格式呢?还用上面的例子,
$this->belongsToMany(User::Class);里的2列的名字是user_id和user_id吗? - 类似问题1,如果不传第3和第4个参数,也就是不自定义列名,那
$this->belongsToMany(User::Class);会自动创建这2列吗?还是必须提前在migration文件里把这2列创建好? -
本章传入了第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。这样理解对不对?
感谢!
关于 LearnKu
user_user什么鬼?
楼主只看英语文档没看懂?试试中文文档
答案在文档里
后面的参数文档里有说
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这两个字段不是默认的。