Следующий код не выбирает столбец имени выбранной записи user
. Скорее возвращает всю строку. Прежде чем я приведу воссоздаемый пример: это ожидаемое поведение здесь?
Я хочу явно выбрать столбцы по объединениям, чтобы уменьшить размер JSON полезной нагрузки и вернуть иерархию вложенной модели моим клиентам.
Я должен добавить, что Я испытываю такое же поведение при использовании функции pluck()
на той же строке. Возможно, я сделал что-то не так.
Существует множество примеров, демонстрирующих этот подход с более ранними версиями Laravel. Версия 6, возможно, сломала это.
$query = Post::whereHas('user.address', function ($query) use ($lat, $lon, $distance) {
$query->distance($lat, $lon, $distance);
})->with([
'user' => function ($query) {
$query->select('name'); // TODO: Report this bug. I've also tried pluck()
},
'user.address' => function ($query) use ($lat, $lon, $distance) {
$query->distance($lat, $lon, $distance);
},
'user.address.city',
'bids' => function ($query) {
$query->orderBy('amount', 'DESC');
},
'bids.user',
'images',
]);