我有两个DataObject分别名为AosMemberCouncil

Council类与$has_oneAosMember关系。

class Council extends DataObject {

    public static $db = array(
        'Title' => 'Varchar(255)',
        'Year' => 'Year(4)'
    );

    public static $has_one = array(
        'Member' => 'AosMember'
    );

    public static $summary_fields = array(
        'Year',
        'Title'
    );

    private static $searchable_fields = array(
        'Member.LAST_NAME' => 'PartialMatchFilter'
    );
}


当我进入CMS中ModelAdminCouncil时,我看到了Member的文本输入。成员人数为+500,因此理想情况下,我希望能够输入姓氏并获得某种自动完成功能。

至少我想要一个下拉字段。但是我找不到有关如何获得这两者的说明。

最佳答案

我假设您是让模型管理员来管理应该使用哪种编辑器来建立关系。

这将是一个下拉字段,但如果出于内存使用目的,如果其中有100条以上的记录将默认为输入字段,请参见接受的答案的注释:Silverstripe admin: "Has one" dropdown converts to ordinary input field after import

我建议使用这些作为管理has-one关系的替代方法:


https://github.com/briceburg/silverstripe-pickerfield
https://github.com/burnbright/silverstripe-hasonefield
http://addons.silverstripe.org/add-ons/simonwelsh/hasoneedit


还没有测试过任何一个,但我认为第一个将是最适合您的情况。

关于php - 在SilverStripe ModelAdmin中搜索关系记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37931718/

10-11 07:10