내 홈 페이지에서 $ slideImages에 대한 $ many_many 배열을 만들었습니다. 많은 것을 읽고 시도한 후에도 템플릿에 이미지가 나타나기를 원하는 순서를 CMS에 알릴 수 없습니다. 기본적으로 그들은 내가 생각하는 업로드 날짜별로 정렬됩니다.silverstripe에서 many_many의 일부로 이미지를 정렬하는 방법은 무엇입니까?
나는 gridfield를 만들 수 있지만 정렬 번호를 입력 할 수있는 텍스트 필드를 얻을 수없는 것 같습니다. 지금은 방금 gridFieldComponent로 안내하는 토끼 흔적을 마쳤지 만 오류가 발생하고 문서가 도움이되지 않습니다.
use SilverStripe\Assets\Image;
use SilverStripe\AssetAdmin\Forms\UploadField;
use SilverStripe\Forms\TextField;
use SilverStripe\Forms\GridField\GridFieldComponent;
use SilverStripe\Forms\GridField\GridFieldConfig_RelationEditor;
use SilverStripe\Forms\GridField\GridField;
class HomePage extends Page
{
private static $db = [];
private static $has_one = [];
private static $many_many = [
'SliderImage'=>Image::Class
];
private static $owns = [
'SliderImage'
];
private static $many_many_extraFields= [
'SliderImage'=>array(
'Sort'=>'Int'
)
];
public function getCMSFields(){
$fields = parent::getCMSFields();
$fields->addFieldToTab('Root.Attachments', UploadField::create('SliderImage', 'Sllider Images')->setFolderName('HomePageSlides'));
$gridFieldConfig = GridFieldConfig_RelationEditor::create()->addComponents(
new GridFieldComponent(TextField('Sort'))
);
$gridField = new GridField("SliderImage", "Slider Image", $this->SliderImage()->sort('Sort'), $gridFieldConfig);
$fields->addFieldToTab("Root.Attachments", $gridField);
return $fields;
}
}
내가 오류는 다음과 같습니다
"Uncaught Error: Cannot instantiate interface SilverStripe\Forms\GridField\GridFieldComponent"
나는 새로운 GridFieldComponent'의 새 (텍스트 필드 ('정렬'))'그리워; BTW : 나는':: create()'구문을 사용할 것이다. 예 : 'GridFieldComponent :: create (TextField :: create ('Sort'))' – wmk
BTW2 : dev 환경에 xdebug를 설치하면 모든 오류 메시지와 함께 멋진 백 트레이스를 얻을 수 있습니다. 그러면 코드에서 오류가 발생한 위치를 볼 수 있습니다. 코드가 프레임 워크 클래스에서 오류를 일으킬 때 매우 편리합니다 ... – wmk