Я получаю некоторые странные вещи, когда вы пытаетесь заинтересовать родную модель, используя hasManyThrough.Laravel - hasManyThrough и нетерпевая загрузка, получить столбец из связанных
У меня есть модель сообщества, функция которой называется «соседи по комнате», чтобы получить всех пользователей, у которых есть идентификатор сообщества в столбце «сообщество», см. Ниже код.
public function roommates()
{
return $this->hasManyThrough('App\User', 'App\Community', 'id', 'community');
}
Тогда модель Пользователь хватают из Auth после входа и жаждущих нагрузок соответствующих моделей, и только отображать столбцы, которые я хочу. Идентификатор, имя, адрес электронной
$user = User::where('id', Auth::id())->with(['community.roommates' => function ($query)
{
$query->select('users.id', 'name', 'email');
}])->first();
Однако мой ответ JSON не то, что я ожидал, идентификатор, который возвращается, как представляется, идентификатор сообщества, хотя я указал «users.id»
{
"status": true,
"data": {
"id": 3,
"name": "Foo Bar",
"email": "[email protected]",
"community": {
"id": 1,
"owner": 3,
"title": "Home",
"created_at": "2015-10-09 08:04:05",
"updated_at": "2015-10-09 08:04:05",
"roommates": [
{
"id": 1,
"name": "Foo Bar 2",
"email": "[email protected]"
},
{
"id": 1,
"name": "Foo Bar",
"email": "[email protected]"
}
]
},
"remember_token": "tprkiNOYbBiViwQkVcJMcwU8poZ1/00Uktmy7AQ+",
"created_at": "2015-10-09 08:03:42",
"updated_at": "2015-10-10 04:56:14"
}
}
Как вы можете видеть идентификатор на обоих пользователей в массиве соседями по комнате является 1, однако идентификаторы тех пользователей, 2 и 3.
Любые идеи?
Я все еще чувствую себя с Laravel, поэтому я не уверен, куда идти отсюда?