Я использую таблицы, сделанные на заказ. Это простая функция роли пользователя. Но не используя обычный стиль схемы базы данных Eloquent.Laravel 5 принадлежитToMany() на пользовательской таблице
Таблица пользователя
- идентификатор пользователя (ПК)
- имя_пользователя (VARCHAR)
Таблица Роль
- Идентификатор роли (ПК)
- RoleName (VARCHAR)
Таблица UserRole поворота колонки
- userroleId Идентификатор роли
- идентификатор пользователя
Теперь я модель Пользователь, который имеет этот метод
public function roles()
{
return $this->belongsToMany("App\Role", "userrole", "roleId", "userId");
}
Когда я м ака называют, как это дает ошибке
$roles = App\User::where("userId", "1")->first()->roles;
dd($roles);
Ошибки она показывает это:
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'role.id' in 'on clause' (SQL: select `role`.*, `userrole`.`roleId` as `pivot_roleId`, `userrole`.`userId` as `pivot_userId` from `role` inner join `userrole` on `role`.`id` = `userrole`.`userId` where `userrole`.`roleId` is null)
Вот мой скромный запрос. Не предлагайте изменить схему таблицы. Я не могу. Я застрял в этом. Спасибо!
Вот мой скромный ответ, пожалуйста, следуйте соглашениям, если у вас нет значимого имени для таких ключей, как 'электронная почта',' SSN' и т. Д. – Asim
@Asim нет необходимости в таком ответе, я бы хотел, чтобы у всех нас была роскошь быть в состоянии всегда следовать соглашениям Тейлора Отуэлла в каждом проекте, над которым мы работаем, когда вам нужно забрать дерьмо в Zend Framework v1 и Codeigniter, Я пойму, каково это быть профессиональным веб-разработчиком. – JonnySerra