1

SilverStripe 3.1.13 では、ModelAdmin によって管理される DataObject 間に単純な 1 対多の関係を確立しようとしています。FacilityワンオフできるクラスがありますFacilityCategory

ファシリティ カテゴリ タブに入ることができますが、ファシリティタブに入るとすぐに「メイン」画面が空白になり、それ以降、管理者が汚染されます - どのタブにもコンテンツが表示されなくなります。

Facility および FacilityCategories で始まるすべてのテーブルを消去し、フラッシュを使用して開発/ビルドを繰り返しました。

なぜそれが機能しないのか、誰かが私に光を当てますか? 私のクラス/関係について何が間違っていますか?

ファシリティ.php

class Facility extends DataObject {
    private static $db = array(
        'Title' => 'Varchar',
    );

    private static $has_one = array(
        'Category' => 'FacilityCategory'
    );

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



    public function getCMSFields(){
        $fields = FieldList::create(
            TextField::create('Title'),
            DropdownField::create('FacilityCategoryID', 'Category')
                ->setSource(FacilityCategory::get()->map('ID', 'Title'))
                ->setEmptyString('-- select a category --')
        );
        return $fields;
    }
}

class FacilityAdmin extends ModelAdmin {
    private static $menu_title = 'Facilities';
    private static $url_segment = 'facilities';
    private static $managed_models = array(
        'Facility'
    );
}

FacilityCategory.php

class FacilityCategory extends DataObject {
    private static $db = array(
      'Title' => 'Varchar'
    );

    private static $has_many = array(
      'Facilities' => 'Facility'
    );

    public function getCMSFields(){
        $fields = FieldList::create(
            TextField::create('Title')
        );
        return $fields;
    }
}

class FacilityCategoryAdmin extends ModelAdmin {
    private static $menu_title = 'Facility Categories';
    private static $url_segment = 'facility-categories';
    private static $managed_models = array(
        'FacilityCategory'
    );
}
4

1 に答える 1

2

あなたの$summary_fields(非公開であると予想される) で、カテゴリ オブジェクトの特定のフィールドではなく、関連するカテゴリ オブジェクトをリストした可能性があります。

private static $summary_fields = array(
  'Title', 
  'Category.Title'
);
于 2015-08-15T22:40:00.807 に答える