Вы должны присоединиться к столам самостоятельно.Использование with('other_table')
только загружает связанные модели, но не в пределах одного запроса.Каждая ссылочная модель, переданная в with()
, приведет к дополнительному запросу.
В вашем случае решение может выглядеть следующим образом:
$customer = Customer::query()
->join('customer_types', 'customers.customer_type_id', '=', 'customer_types.id')
->select([
'customers.*',
DB::raw("CONCAT(customers.name, ' - ', customer_types.type) as customer_plus_type"),
])
->first();
Это выберет все поля customers
таблица, а также ваше настраиваемое поле с именем customer_plus_type
.Пожалуйста, убедитесь, что вы изменили поле customers.customer_type_id
в join
соответственно.Из вашего вопроса неясно, как оно было названо.
Кстати, если вам все еще нужно загружать отношение customerType
, вы можете просто добавить with('customerType')
где-то перед вызовом first()
.