gpt4 book ai didi

php - 将原始查询连接更改为 laravel Eloquent

转载 作者:行者123 更新时间:2023-11-29 01:55:42 26 4
gpt4 key购买 nike

我有两个模型:

$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();

现在,我需要将它与表名为 sites 的第二个模型 $modelSites 连接起来,以便检查 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?

感谢您的帮助。

最佳答案

您是否看过在 Eloquent 中使用关系,您应该在两个模型中声明关系,例如:

class SearchPages extends Eloquent {

public function sites()
{
return $this->hasMany('sites');
}

}

有关 Eloquent 和关系的更多信息,请参阅此引用资料: http://laravel.com/docs/4.2/eloquent#relationships

关于php - 将原始查询连接更改为 laravel Eloquent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29913238/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com