Мне любопытно, почему отношение Eloquent для hasMany
имеет другую подпись, чем для belongsToMany
. В частности, имя таблицы настраиваемых соединений - для системы, в которой данный Comment
принадлежит ко многим Role
s, а для данного Role
будет много Comment
s, я хочу сохранить отношение в таблице с именем my_custom_join_table
и установите ключи как comment_key
и role_key
.
return $this->belongsToMany('App\Role', 'my_custom_join_table', 'comment_key', 'role_key'); // works
Но в обратном я не могу определить эту пользовательскую таблицу (по крайней мере, документы ее не упоминают):
return $this->hasMany('App\Comment', 'comment_key', 'role_key');
Если у меня есть объект Role
, который hasMany
Comments
, но я использую имя нестандартной таблицы для хранения этого отношения, почему я могу использовать эту нестандартную таблицу, идущую в одну сторону, но не другую?