在Silverstripe模型中查询远程表
我试图从一个页面类型和另一个页面类型中获取一个字段“cost”的总和。(ProjectCategory),如下所示:在Silverstripe模型中查询远程表,silverstripe,Silverstripe,我试图从一个页面类型和另一个页面类型中获取一个字段“cost”的总和。(ProjectCategory),如下所示: class ProjectCategory extends Page { static $belongs_many_many = array( 'RelateToProject' => 'Project' ); function totalCost(){ $sqlQuery = new SQLQuery( "SUM(Project.cos
class ProjectCategory extends Page {
static $belongs_many_many = array(
'RelateToProject' => 'Project'
);
function totalCost(){
$sqlQuery = new SQLQuery(
"SUM(Project.cost)", // Select
"Project", // From
"what to do here?" // Where (optional)
);
$totalVisits = $sqlQuery->execute()->value();
return $totalVisits;
}
我该怎么做呢?我怎样才能得到这类产品的总成本?(如果我将where
留空,它将返回每个类别的所有项目成本的总和-这是不好的) 位置部分应为:
"ID = " . $this->RelateToProjectID
哦,等等,上面的方法只适用于für$has___-one,但你使用的是多人关系
以下几点对你的多人关系有帮助:
构建相关项目的ID数组:
$projects = $this->RelateToProject();
$projectIDs = array();
if($projects) {
foreach($projects as $project) {
$projectIDs[] = $project->ID;
}
}
然后在“where”语句中使用它们,如下所示:
"ID IN (" . join(',',$projectIDs) . ")"