Объединение Laravel с полиморфной сводной таблицей с использованием названий моделей в предложении
Я использую красноречивые полиморфные отношения, которые отлично подходят для управления сводной таблицей между различными моделями и другой моделью, называемой компанией.
У меня есть сводная таблица, которая содержит следующую структуру:
Я должен сделать запрос соединения между таблицей транспортных средств и сводной таблицей, используя model_id и model_type, используя eloquent построитель запросов. Но, когда я делаю:
$builder->join('pivot_table', function($join){
$join->on('vehicle.id','=','pivot_table.model_id')
->on('pivot.model_type', Vehiculo::class );
})->select('vehicle.*',pivot_table.*)->get();
этот код не возвращает никакого результата. Но если я изменю второе предложение на:
$builder->join('pivot_table', function($join){
$join->on('vehicle.id','=','pivot_table.model_id')
->on('pivot.model_type', 'like' , '%Vehiculo%');
})->select('vehicle.*',pivot_table.*)->get();
этот код работает правильно и возвращает результаты, что я хочу, но я думаю, что это неправильный способ получить результаты.
Кто-нибудь знает, есть ли способ заставить запустить первый код?
спасибо за ответы.
0 ответов
Хорошо. Я решил. Решение меняется второй на где
$builder->join('pivot_table', function($join){
$join->on('vehicle.id','=','pivot_table.model_id')
->where('pivot.model_type' , Vehiculo::class);
})->select('vehicle.*',pivot_table.*)->get();