SilverStripe gridField条目对于普通后端用户不可见

时间:2016-02-05 13:35:19

标签: php silverstripe

我有两个用户组管理员 Inhaltsautoren

我的LandingPage有一个标签预告片,带有 gridField 。普通用户看不到条目,​​我也不知道为什么?

我无法找到设置Inhaltsautoren权限的内容。有人知道为什么gridField中没有条目吗?

Teaser.php

<?php 

class Teaser extends DataObject {

private static $db = array (
    'Title' => 'Varchar',
    'Description' => 'HTMLText'
);

private static $has_one = array (
    'Photo' => 'Image',
    'Link' => 'Link'
);

private static $many_many = array(
    'Tags' => 'Tag'
);

private static $summary_fields = array (
    'GridThumbnail' => '',
    'Title' => 'Titel',
    'Description' => 'Beschreibung'
);

public function getGridThumbnail() {
    if($this->Photo()->exists()) {
        return $this->Photo()->SetWidth(100);
    }

    return "(no image)";
}

public function getCMSFields() {
    $fields = FieldList::create(
        TextField::create('Title'),
        $tags = TagField::create('Tags','Tags',Tag::get(),$this->Tags()),
        HTMLEditorField::create('Description', 'Beschreibung'),
        LinkField::create('LinkID', 'Weiterleitung'),
        $uploader = UploadField::create('Photo')
    );

    $tags->setShouldLazyLoad(true); // tags should be lazy loaded
    $tags->setCanCreate(true);      // new tag DataObjects can be created

    $uploader->setFolderName('teaser');
    $uploader->getValidator()->setAllowedExtensions(array('png','jpeg','jpg'));

    return $fields;
}
}

和我的LadingPage.php

$fields->addFieldToTab('Root.Teaser', $gridField = GridField::create(
    'Teasers',
    'Landing Page Teaser',
    $this->Teasers(),
    GridFieldConfig_RecordEditor::create()
));


$gridField->getConfig()->getComponentByType("GridFieldDataColumns")->setFieldCasting(array("Description"=>"HTMLText->BigSummary"));

1 个答案:

答案 0 :(得分:3)

在您的数据对象上使用canView(),如果允许您的用户查看此对象,请检查此功能。

  public function canView($member = null) {
    return Permission::check('ADMIN', 'any');
  }