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'
);
}