Редактировать: Обновлено в hasOne в обоих классах
У меня есть две таблицы, Store
и Address
. Один магазин имеет один адрес, а один адрес связан только с одним магазином.
В моей модели Store
у меня есть отношение hasOne
.
public function store_address(): HasOne
{
return $this->hasOne(Address::class, 'id', 'address_id');
}
И в Address
У меня есть модель hasOne
:
public function store(): HasOne
{
return $this->hasOne(Store::class, 'id', 'store_id');
}
Теперь я хочу объединить эти две таблицы, используя Eloquent с () с select *
из store
, но хочу указать c столбцы из address
Таблица.
Store::where('user_id', $user_id)
->select(\DB::raw('*')
->with(['store_address' => function($query) {
return $query->select(['distance_to_user as distance']);
}])
->orderBy('distance');
Однако он не возвращает правильный distance
из таблицы адресов. Как я могу это сделать?
Это сообщение об ошибке, которое я получаю:
Column not found: 1054 Unknown column 'distance' in 'order clause' (SQL: select *, from `store` where `store`.`user_id` = 12 and `store`.`deleted_at` is null order by `distance` asc)