Silverstripe页面中的可变自定义字段; 填充表

SIl*_*bie -1 database silverstripe content-management-system

如何在Silverstripe页面中添加变量自定义字段?例如,如果我为"爱好"创建了一个自定义字段,那么一个人可能会有几个爱好.因此我需要用户动态添加另一个字段以进入前端CMS中的业余爱好.那么也许用户可以点击CMS中的"添加其他爱好"按钮?

另一个问题是如何在程序中填充Silverstripe中的表格?

how*_*d10 5

听起来你需要has_many在你的页面上建立一个与Hobby数据对象扩展的关系:

// HobbyPage.php
class HobbyPage extends Page {

    private static $has_many = array(
        'Hobbies' => 'HobbyPage'
    );

}

// Hobby.php
class Hobby extends DataObject {

    private static $has_one = array(
        'HobbyPage' => 'HobbyPage'
    );

    private static $db = array(
        'Title' => 'Varchar(250)',
        // Any extra fields you want
    );

}
Run Code Online (Sandbox Code Playgroud)

根据您需要的数据复杂程度,您可以使用GridField标签字段(https://github.com/silverstripe-labs/silverstripe-tagfield)处理CMS中的数据.重要的是has_many在担心如何存储/检索数据之前,让您的底层数据库结构正确(使用as ).

我相信SilverStripe课程(http://www.silverstripe.org/learn/lessons)涵盖数据关系,应该有所帮助.