получение всех пользователей из группы [laravel] - PullRequest
1 голос
/ 12 февраля 2020

У меня есть 3 группы и 16 пользователей, принадлежащих к этим группам случайным образом. Я использую операнд

$groups = \App\Group::with('users')->get();

для получения групп и пользователей. Но у меня есть только 1 группа, заполненная пользователями, другие группы (которые связаны в промежуточной таблице) пусты.

В модели группы у меня есть эти:

class Group extends Model
{
protected $table = 'crm_groups';
protected $primaryKey = 'group_id';
protected $fillable = ['name'];
public $timestamps = true;

public function users()
{
    return $this->belongsToMany('\App\User', 'crm_user_groups', 'user_id', 'group_id');
}

}

База данных:

 INSERT INTO `crm_user_groups` (`id`, `group_id`, `user_id`) VALUES
 (1,    1,  1),
 (2,    2,  1),
 (3,    2,  1),
 (4,    3,  1),
 (5,    2,  14),
 (6,    2,  15),
 (7,    3,  16);

1 Ответ

1 голос
/ 12 февраля 2020

Вы прошли не в том месте своего параметра.

public function users()
{
    return $this->belongsToMany('\App\User', 'crm_user_groups','group_id', 'user_id');
}

Если вы обращаетесь к нему из модели группы, тогда первым параметром должно быть 'group_id', а затем 'user_id'.

Третий аргумент - это имя внешнего ключа модели , для которой вы определяете отношение, тогда как четвертый аргумент - это Foreign название модели , к которой вы присоединяетесь.

...