Всем привет!
Есть таблица Users и она связана с таблицей Books. Необходимо получить в запросе к Users данные из Books, только значения.
В User прописано:
public function books()
{
return $this->hasMany(Book::class);
}
Пробую получить значения так:
$users = User::with('books')->get();
В итоге получаю в ответе параметр books:
...
'books' :
0:
id: 1
user_id: 1
book: "Sample book"
...
Отлично, выполняется 1 запрос и мы получаем данные, но не в том виде в котором надо, а надо в таком:
...
'books' :
"Sample book"
"Sample book2"
"Sample book3"
...
...
Попробовал добавить в запрос map:
$users = User::get()->map(function ($title) {
$title['books'] = $title->books()->get()->pluck('book')->all();
return $title;
});
Получаем то, что хотим, но тогда вызывается безумное количество запросов на каждого User с отношением Book.
Как с помощью отношений получить в параметре массив состоящий только из значений при этом не создающий множество запросов?