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”的单独行中?