Content management system Silverstripe 3 leftjoin

Content management system Silverstripe 3 leftjoin,content-management-system,silverstripe,Content Management System,Silverstripe,在自定义页面类型“ProjectPage”和相应的关系表(“ProjectPage\u类别”)上执行leftjoin时遇到问题。 ProjectPage有许多类别,而on类别可以属于许多项目。 ProjectPage如下所示: class ProjectPage extends Page { static $many_many = array( 'Categories' => 'Category' ); $projectPages = ProjectPa

在自定义页面类型“ProjectPage”和相应的关系表(“ProjectPage\u类别”)上执行leftjoin时遇到问题。 ProjectPage有许多类别,而on类别可以属于许多项目。 ProjectPage如下所示:

class ProjectPage extends Page { 
    static $many_many = array(
        'Categories' => 'Category'
    );
$projectPages = ProjectPage::get()
        ->leftJoin("ProjectPage_Categories", "ProjectPage_Categories.ProjectPageID = ProjectPage.ID")
        ->filter(array('CategoryID' => $categoryID));
和这样的分类:

class Category extends DataObject {
    static $belongs_many_many = array(
        'ProjectPages' => 'ProjectPage'
    ); 
我正在尝试获取与特定类别相关的所有项目页面,如下所示:

class ProjectPage extends Page { 
    static $many_many = array(
        'Categories' => 'Category'
    );
$projectPages = ProjectPage::get()
        ->leftJoin("ProjectPage_Categories", "ProjectPage_Categories.ProjectPageID = ProjectPage.ID")
        ->filter(array('CategoryID' => $categoryID));
不幸的是,这不起作用。始终存在sql错误:“on子句”中的未知列“ProjectPage.ID”

一个非常相似的东西可以毫无问题地工作:

$members = Member::get()
    ->leftJoin("Group_Members", "Group_Members.MemberID = Member.ID")
    ->filter(array('GroupID' => '2'));
我猜这是一个问题,因为ProjectPage扩展了Sitetree,并且没有名为“ProjectPage”的表。我试图用SiteTree替换ProjectPage,但到目前为止没有成功

非常感谢,,
Florian

如果我做对了,您根本不需要手动连接:

$category = Category::get()->byID($categoryID);
$projectPages = $category->ProjectPages();

否?

如果我做对了,您根本不需要手动连接:

$category = Category::get()->byID($categoryID);
$projectPages = $category->ProjectPages();

不需要?

谢谢,这其实很容易:)但这里真的很难找到:我要求添加一些关于访问关系的行。谢谢,这其实很容易:)但这里真的很难找到:我要求添加一些关于访问关系的行。