【发布时间】:2026-01-19 11:20:05
【问题描述】:
我有两个模型:
$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();
现在,我需要将它与第二个模型 $modelSites 加入它,其表名为 sites,以便检查 sites 中的状态列是否为 1。
我将查询修改为:
$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();
一切正常,但如您所见,我在join() 和where() 中直接使用表名sites,而我认为我必须使用模型名称。
如何将此查询转换为正确的 Laravel Eloquent?
感谢您的帮助。
【问题讨论】:
标签: php mysql laravel eloquent