【发布时间】:2012-08-27 17:25:55
【问题描述】:
我在自定义页面类型“ProjectPage”和相应的关系表(“ProjectPage_Categories”)上执行左连接时遇到问题。 ProjectPage 有许多类别,并且类别上可以属于许多项目。 ProjectPage 看起来像这样:
class ProjectPage extends Page {
static $many_many = array(
'Categories' => 'Category'
);
和这样的类别:
class Category extends DataObject {
static $belongs_many_many = array(
'ProjectPages' => 'ProjectPage'
);
我正在尝试获取与某个类别相关的所有 ProjectPages,如下所示:
$projectPages = ProjectPage::get()
->leftJoin("ProjectPage_Categories", "ProjectPage_Categories.ProjectPageID = ProjectPage.ID")
->filter(array('CategoryID' => $categoryID));
不幸的是,这不起作用。总是出现 sql 错误:Unknown column 'ProjectPage.ID' in 'on Clause'
一个非常相似的事情没有问题:
$members = Member::get()
->leftJoin("Group_Members", "Group_Members.MemberID = Member.ID")
->filter(array('GroupID' => '2'));
我猜这是因为 ProjectPage 扩展了 Sitetree 并且没有名为“ProjectPage”的表。我试图用 SiteTree 替换 ProjectPage,但到目前为止没有成功。
非常感谢, 弗洛里安
【问题讨论】:
标签: content-management-system silverstripe