получение всех пользователей из группы [laravel]

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

$groups = AppGroup::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('AppUser', '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 ответ


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

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

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

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


Есть идеи?

10000