У меня 2 модели.
Пользователь:
class User extends Eloquent implements UserInterface, RemindableInterface { protected $table = 'users'; public function group () { return $this->belongsTo('Group'); } }
Группа:
class Group extends Eloquent { protected $table = 'groups'; }
Таблица пользователя имеет внешний ключ в столбце group
который ссылается на id
в таблице групп.
Схема может помочь
Schema::table('users', function ($table) { $table->foreign('group') ->references('id') ->on('groups') ->onDelete('cascade'); });
Когда я пытаюсь получить группу пользователей, используя:
User::find(1)->group()->name
Я получаю ошибку
Undefined property: Illuminate\Database\Eloquent\Relations\BelongsTo::$name
Групповая схема по запросу:
Schema::create('groups', function ($table) { $table->increments('id'); $table->string('name'); $table->integer('permission'); });
Вот несколько экранов:
таблица пользователей
таблица групп :
И таблица пользователей FK
РЕДАКТИРОВАТЬ
@Cryode решил это для меня в чат-сессии. Проблема заключалась в том, что у меня были конфликтующие имена. Метод модели использовал то же имя, что и имя столбца ( group
). Простое изменение имени столбца в базе данных решило проблему.