Php 摘要字段中的$many\u many关系

Php 摘要字段中的$many\u many关系,php,silverstripe,Php,Silverstripe,我有两个类,它们之间的关系是$many\u many和$properties\u many。我试图在包含$many\u many的类中定义$summary\u字段来显示类之间的关系,但该列('Column2.Column2')显示空白结果。如何设置$summary\u字段以正确显示此数据 这是我的密码 class Table1 extends DataObject { private static $db = array( 'Column1' => 'Varcha

我有两个类,它们之间的关系是
$many\u many
$properties\u many
。我试图在包含
$many\u many
的类中定义
$summary\u字段来显示类之间的关系,但该列('Column2.Column2')显示空白结果。如何设置
$summary\u字段
以正确显示此数据

这是我的密码

class Table1 extends DataObject {

    private static $db = array(
        'Column1' => 'Varchar(32)'
    );

    private static $many_many = array (
        'Column2' => 'Table2'
    );

    private static $summary_fields = array (
        'Column1' => 'Column 1',
        'Column2.Column2' => 'Column 2'
    );
}

class Table2 extends DataObject {

    private static $db = array(
        'Column2' => 'Varchar(32)'
    );

    private static $belongs_many_many = array (
        'Column1' => 'Table1'
    );
}

问题是
$many\u many
关系或
$has\u many
关系可以链接到多个对象。我们不能将
$many\u many
$has\u many
作为一行放入
$summary\u字段中,因为网格字段不知道如何显示多个项目

例如,假设我们有
列。Title
其中
是当前对象上的
$many\u many
关系。如果有三个
对象链接到当前对象,则系统不知道显示这三列的标题

我们可以做的是创建一个函数来返回一个字符串,该字符串显示我们想要显示的数据

以下代码是为Silverstripe 3编写的

class Table1 extends DataObject
{
    private static $db = [
        'Title' => 'Varchar(32)',
    ];

    private static $many_many = [
        'Columns' => 'Table2',
    ];

    private static $field_labels = [
        'ColumnsString' => 'Columns',
    ];

    private static $summary_fields = [
        'Title',
        'ColumnsString',
    ];

    public function ColumnsString()
    {
        return implode(', ', $this->Columns()->column('Title'));
    }
}

class Table2 extends DataObject
{
    private static $db = [
        'Title' => 'Varchar(32)',
    ];

    private static $belongs_many_many = [
        'Columns' => 'Table1',
    ];
}

所有“ColumnsString”都显示在“Title”的同一行中。如何将每个“ColumnsString”放在重复“Title”的单独行中?