Первый способ:
Вы должны определить state_id в таблице пользователей для отношения один к одному.
class User extends Model
{
public function state()
{
return $this->hasOne('App\State');
}
}
Или, если вам нужна такая же структура базы данных, тогда
Второй способ:
По сути это Отношение ко многим ко многим между пользователем и государством .
Так что лучше определить функция отношения «многие ко многим» в моделях пользователя и состояния с учетом UserRelation * средняя (сводная) таблица.
class User extends Model
{
public function states()
{
return $this->belongsToMany('App\State', 'user_relations');
}
}
class State extends Model
{
public function users()
{
return $this->belongsToMany('App\User', 'user_relations');
}
}
, а затем для доступа к состояниям пользователя вы можете вызвать:
$user->states->first();
Это нормально, что вам нужно отношение один к одному, вы можете вызвать метод first () для получения состояния od первой записи.
Simillery для доступа к пользователю состояния
$state->users->first();
И если вам нужен только user_relations (один к одному), вы должны определить методы как в модели пользователя, так и в модели состояния:
class User extends Model
{
public function user_relation()
{
return $this->hasOne('App\UserRelation');
}
}
class State extends Model
{
public function user_relation()
{
return $this->hasOne('App\UserRelation');
}
}