Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php DataObject的ModelAdmin屏幕未打开_Php_Silverstripe_Data Objects_Modeladmin - Fatal编程技术网

Php DataObject的ModelAdmin屏幕未打开

Php DataObject的ModelAdmin屏幕未打开,php,silverstripe,data-objects,modeladmin,Php,Silverstripe,Data Objects,Modeladmin,在SilverStripe 3.1.13中,我试图在ModelAdmin管理的数据对象之间建立一个简单的一对多关系。有一个设施类,它可以具有一次性设施类别 我可以进入“设施类别”选项卡,但一旦我进入“设施”选项卡,“主”屏幕将变为空白,从那时起管理员将被污染-没有选项卡将再显示内容 我删除了从Facility和FacilityCategories开始的所有表,并使用flush重复进行开发/构建 有人能告诉我为什么它不起作用吗?我的班级/关系有什么问题 Facility.php FacilityC

在SilverStripe 3.1.13中,我试图在ModelAdmin管理的数据对象之间建立一个简单的一对多关系。有一个
设施
类,它可以具有一次性
设施类别

我可以进入“设施类别”选项卡,但一旦我进入“设施”选项卡,“主”屏幕将变为空白,从那时起管理员将被污染-没有选项卡将再显示内容

我删除了从Facility和FacilityCategories开始的所有表,并使用flush重复进行开发/构建

有人能告诉我为什么它不起作用吗?我的班级/关系有什么问题

Facility.php FacilityCategory.php
可能是在您的
$summary\u字段中(预计为私有字段),您列出了相关的类别对象,而不是类别对象上的特定字段,因此:

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

可能是在您的
$summary_fields
(预计是私有的)中,您列出了相关的类别对象,而不是类别对象上的特定字段,因此有
私有静态$summary_fields=array('Title','category.Title')。另外,您使用两个单独的modelAdmins有什么特别的原因吗?我倾向于使用同一个ModelAdmin来管理这两个模型(因为它们是相关的)。@jpmcc靶心!就这样。很好的一课。请复制您的评论作为答案,您将被接受。根据两个单独的ModelAdmins,这是我第一个直观的选择,将admin内容与相应的DataObject类放在同一个文件中,但如果我告诉我,例如,这种方法会影响性能,我肯定会按照您的方式进行。对不起,不是想挑三拣四什么的。不确定性能。只需添加一个额外的内容,您可能需要将“Category.Title”摘要字段的标签更改为其他内容。因为在
$summary\u字段中指定标签时会出现一些混乱的边缘情况。这一点很好。我同意这一点。如果需要本地化,也非常有用。
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'
    );
}
private static $summary_fields = array(
  'Title', 
  'Category.Title'
);