У меня есть две модели:Изменить необработанный запрос присоединиться к Laravel красноречивый
$modelMain = "SearchPages"; //table_name : search_pages
$modelSites = "Site"; // table_name : sites
Я изначально был ниже запрос для получения количества только из одной модели $modelMain
:
$records = $modelMain::
select(DB::raw("COUNT(DISTINCT {$columnRecordedOn}) as records_count"))
->groupBy($columnRecordedOn, $columnSiteId)
->get();
Теперь мне нужно присоединиться его со 2-й моделью $modelSites
имя таблицы whoese - sites
, чтобы проверить колонку состояния в sites
, если ее 1.
I модифицировал запрос:
$records = $modelMain::
select(DB::raw("COUNT(DISTINCT {$columnRecordedOn}) as records_count"))
->join('sites','search_pages.site_id','=','sites.site_id') //added this
->where('sites.status','=','1') // and this
->groupBy($columnRecordedOn, $columnSiteId)
->get();
Все работает нормально, но как вы можете видеть, я использую имя таблицы sites
непосредственно в join()
и в where()
вместо этого я должен использовать название модели я считаю.
Как я могу преобразовать этот запрос в правильный Laravel Eloquent?
Спасибо за любую помощь.
Спасибо @ Kamlesh.bar, но его не фильтруются в соответствии со статусом, однако это дает какую-либо ошибку. – Fahad
@Fahad Я поставил неправильные имена «сайты», вместо этого он должен быть «сайтом» в соответствии с именем функции в SearchPage Model. отредактировал ответ –
Я исправил это ... он все еще возвращает все записи. – Fahad