Я создаю БД для программного обеспечения, где аутентификация связана с сервером LDAP компании. Теперь у меня есть две таблицы
AD_Groups
и
AD_Users
, которые объединены в таблицу
AD_UsersXAD_Groups
Я уже узнал об установлении отношений в eloquent. Отношение ко многим ко многим иллюстрируется в официальных документах следующим образом: https://laravel.com/docs/5.8/eloquent-relationships#many-ко-многим
Теперь, как вы можете видеть, следующая функция eloquent не поможет мне много:
"To define this relationship, three database tables are needed: users, roles, and role_user. The role_user table is derived from the alphabetical order of the related model names, and contains the user_id and role_id columns."
Поэтому мне нужно переопределить это производное имя, используя второй параметр, как описано здесь:
"As mentioned previously, to determine the table name of the relationship's joining table, Eloquent will join the two related model names in alphabetical order. However, you are free to override this convention. You may do so by passing a second argument to the belongsToMany method:
return $this->belongsToMany('App\Role', 'role_user');
Но, как видно из приведенного выше примера из документов, печально известный «случай змеи» по-прежнему применяется к имени. Тем не менее, я боюсь, что это может не сработать для моего случая. По общему признанию, AD_UsersXAD_Groups
довольно уродлив, и я боюсь, что eloquent / lumen не сможет правильно идентифицировать его элементы и правильно применить правило случая змеи. Но я не знаю наверняка, и поэтому я спрашиваю вас, что будет наиболее вероятно работать. Используя AD_UsersXAD_Groups
или AD_UserXAD_Group