Silverstripe Gridfield关系

Silverstripe Gridfield关系,silverstripe,Silverstripe,我正在尝试将安全文件silverstripe模块更新为SS3 在其中,作者使用了以下ComplexTable字段: class SecureFileTokenPermissionDecorator extends DataExtension { static $has_many = array( 'AccessTokens' => 'SecureFileAccessToken' ); .... $tokenLis

我正在尝试将安全文件silverstripe模块更新为SS3

在其中,作者使用了以下ComplexTable字段:

    class SecureFileTokenPermissionDecorator extends DataExtension {
       static $has_many = array(
           'AccessTokens' => 'SecureFileAccessToken'
       );

    ....

    $tokenList = new ComplexTableField(
        $this->owner,
        'ContainedFileTokens',
        'SecureFileAccessToken',
        null,
        null,
        "File.ParentID = '{$this->owner->ID}'",
        $sourceSort = null,
        "JOIN File ON FileID = File.ID"
    ));
    $tokenList->setParentIdName('FolderID');
    $tokenList->setRelationAutoSetting(false);

    ....
    }
我想知道如何用Gridfield表示相同的数据/关系。 谢谢

查看模块源代码,我建议进行以下设置:

$tokenList = $gridField = new GridField(
    'AccessTokens', 
    'Tokens', 
    $this->owner->AccessTokens(), 
    GridFieldConfig_RelationEditor::create()
);
这直接作用于关系getter,它是一个延迟加载的列表(在必要时才查询),并自动分页。我不太确定
setParentIdName(“FolderID”)
如何适合这里,可能没有必要。注意:尚未在实际的代码库上尝试此操作

如果您需要在更高层次上理解API的帮助,请查看和

感谢您帮助为SS3准备模块:)