Как мне написать это второе отношение к той же модели в Laravel? ⇐ Php
-
Гость
Как мне написать это второе отношение к той же модели в Laravel?
У меня есть две модели: «Пользователь» и «Сообщество». Пользователь может принадлежать ко многим сообществам, а в сообществе может быть много пользователей. Для этого я реализовал связь «многие ко многим» в обеих моделях, а затем создал сводную таблицу communis_users. В модели сообщества у меня определены отношения пользователей (членов):
публичная функция пользователей(){ return $this->belongsToMany('App\User', 'communities_users', 'community_id', 'user_id'); } В модели пользователя у меня есть отношения с сообществами, определенные как:
сообщества публичной функции(){ return $this->belongsToMany('App\Community', 'communities_users', 'user_id', 'community_id'); } Я могу назвать эти отношения прекрасными. Без проблем. Однако мне нужно добавить admin_id в таблицу сообществ, представляющий пользователя, создавшего сообщество (указывающий на ту же модель пользователя). Я знаю, что это будут отношения «ownsTo» в модели «Сообщество» и отношения «hasMany» в модели «Пользователь». Я добавил столбец admin_id в таблицу сообществ. В мою модель сообщества я добавил свою модель администратора следующим образом;
публичная функция admin(){ return $this->belongsTo('App\User', 'admin_id'); } Если я попытаюсь вернуть это, приложение продолжает ломаться с ошибкой 500 Internal server. Как я могу это исправить и заставить его возвращать объект пользователя, создавший сообщество?
У меня есть две модели: «Пользователь» и «Сообщество». Пользователь может принадлежать ко многим сообществам, а в сообществе может быть много пользователей. Для этого я реализовал связь «многие ко многим» в обеих моделях, а затем создал сводную таблицу communis_users. В модели сообщества у меня определены отношения пользователей (членов):
публичная функция пользователей(){ return $this->belongsToMany('App\User', 'communities_users', 'community_id', 'user_id'); } В модели пользователя у меня есть отношения с сообществами, определенные как:
сообщества публичной функции(){ return $this->belongsToMany('App\Community', 'communities_users', 'user_id', 'community_id'); } Я могу назвать эти отношения прекрасными. Без проблем. Однако мне нужно добавить admin_id в таблицу сообществ, представляющий пользователя, создавшего сообщество (указывающий на ту же модель пользователя). Я знаю, что это будут отношения «ownsTo» в модели «Сообщество» и отношения «hasMany» в модели «Пользователь». Я добавил столбец admin_id в таблицу сообществ. В мою модель сообщества я добавил свою модель администратора следующим образом;
публичная функция admin(){ return $this->belongsTo('App\User', 'admin_id'); } Если я попытаюсь вернуть это, приложение продолжает ломаться с ошибкой 500 Internal server. Как я могу это исправить и заставить его возвращать объект пользователя, создавший сообщество?
Мобильная версия