Как отношение относится к Laravel - PullRequest
0 голосов
/ 11 февраля 2020

В моем проекте я хочу показать имя в таблице категорий и провинций и эту таблицу и соотнести ее с ней в таблице пользователей.

Это мой код.

В контроллере:

$user=user::with('province','category')->where([['id',$id]])->first();

В модели:

//relation with province model (invert relation)
public function province()
{
    return $this->belongsTo('App\Model\province');
}

//relation with province model (invert relation)
public function category()
{
    return $this->belongsTo('App\Model\category');
}

Но в ответ возвращается только идентификатор, а не имя и другое свойство.

В выводе показать это:

category_id: 3

провинция_id: 6

Ответы [ 2 ]

0 голосов
/ 11 февраля 2020

Поместите внешний и локальный ключи в отношения.

public function province()
{
    return $this->belongsTo('App\Model\province','foreign_key','local_key'); // put your FK and LK here
}
public function category()
{
    return $this->belongsTo('App\Model\category','foreign_key','local_key'); // put your FK and LK here
}

Результат можно получить по

$user=user::where('id','=',$id)->first();
if(isset($user))
{
  if(isset($user->province))
  {
    //do whatever you want
  }
  if(isset($user->category))
  {
    //do whatever you want
  }
}
0 голосов
/ 11 февраля 2020

Неправильно $user=user::with('province','category')->where([['id',$id]])->first();

//Use
$user=user::with(['province','category'])->where('id', $id)->first();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...