Ваша сводная таблица должна иметь имя skill_user
( единственное число ) после названия модели, которой они принадлежат. И вам не нужна модель EmployeeSkill для работы этого отношения, вам нужна только таблица.
Как сказано в документации :
, чтобы определить имя таблицы объединяющей таблицы отношений, Eloquent объединит два связанных имени модели в алфавитном порядке . Тем не менее, вы можете изменить это соглашение. Вы можете сделать это, передав второй аргумент в метод ownToMany
И затем вы должны исключить эту строку:
protected $table = "employee_skills";
изменить имя таблицы на skill_user
И в своей сводной таблице вы должны использовать user_id
в качестве внешнего ключа
Вы можете получить все навыки у пользователя, выполнив следующее:
$user = User::find(1);
$user->skills();
Это даст вам все навыки пользователя с идентификатором 1
Имейте в виду, что вы можете использовать любое имя таблицы и любое имя внешнего ключа, но если вы сделаете это, вам нужно указать имена на отношения. Поэтому я рекомендую вам делать то, что я вам сказал, так как это стандартный способ