Итак, у меня есть приложение laravel, которое содержит множество различных моделей, и некоторые из них зависят от других. В стандартном SQL вы должны использовать простое выражение соединения и покончить с этим. Тем не менее, Laravels Eloquent Models предлагает функции для легкого построения этих отношений (т.е. hasOne, hasMany и т. Д.). Поэтому я определил свои отношения с последним методом и фактически успешно использовал их.
В попытке использовать модель Eloquent вместе с определенными здесь связями:
vehicle::with(['colors:id,Color', 'damages:id,Damage','secondaryDamages:id,Damage',
'modeldetails.model','modeldetails.engine_type',
'modeldetails.fuel_type','modeldetails.transmission_type',
'modeldetails.body_type','modeldetails.drive_type, 'modeldetails.model.vendor','auctionday']);
Но проблема возникает, когда я пытаюсь связать эту команду с
whereIn()
.
vehicle::with(['colors:id,Color', 'damages:id,Damage','secondaryDamages:id,Damage',
'modeldetails.model','modeldetails.engine_type',
'modeldetails.fuel_type','modeldetails.transmission_type',
'modeldetails.body_type','modeldetails.drive_type, 'modeldetails.model.vendor','auctionday'])
->whereIn([id, $arrayofValuetoMatch]);
См. Запрос "id" для таблицы работает нормально, это когда я запрашиваю другие столбцы, принадлежащие другим таблицам, таким как 'modeldetails.model.vendor.id', что может вызвать ** ошибку для неизвестного столбца. ** если он был вместо идентификатора в whereIn()
Итак, мой вопрос: как бы я назвал параметр столбца в методе whereIn()
при использовании красноречивых связей laravels. Или мне нужно использовать метод объединения, чтобы иметь доступ к этим столбцам?
Вот исходная ошибка
SQLSTATE [42S22]: Столбец не найден: 1054 Неизвестный столбец «vehicle_makes.id» в «выражении where» (SQL: выбрать количество (*) как совокупность из vehicles
, где vehicle_makes
. id
in (1) , 2, 3, 4, 5)).
"vehicle_makes" - это оригинальное имя таблицы, но оно не работает.
Любая помощь будет принята с благодарностью ..