Has_many на ModelAdmin

У меня есть два объекта DataObjects на Silverstripe 4.
Сначала викторина с has_many-отношениями с вопросами для этой викторины.

use SilverStripe\ORM\DataObject;
use SilverStripe\Forms\FieldList;
use SilverStripe\Forms\TextField;
use SilverStripe\Forms\DateField;
use SilverStripe\Forms\LiteralField;
use SilverStripe\Forms\CheckboxField;

class Quiz extends DataObject {

private static $db = [
"Name" => "Varchar(200)",
"bis" => "Date()",
"aktiv" => "Boolean",
"Mail" => "Boolean",
"MailText" => "Text"];

private static $has_one = [
];

private static $has_many = [
"Fragen" => Quiz_Fragen::class
];

Код для вопросов.

use SilverStripe\ORM\DataObject;
use SilverStripe\Forms\FieldList;
use SilverStripe\Forms\TextField;
use SilverStripe\Forms\TextareaField;

class Quiz_Fragen extends DataObject {

private static $db = [
"Frage" => "HTMLText",
"Art" => "Enum(array('auswählen','MC','Text','Check'))",
"OP1" => "Varchar(400)",
"OP2" => "Varchar(400)",
"OP3" => "Varchar(400)",
"OP4" => "Varchar(400)",
"Foul" => "Varchar(50)",
"Team" => "Enum(array('A','B'))",
"Punkte" => "Varchar(200)",
"Down" => "Enum(array('1','2','3','4','Try','FK'))",
"Pos" => "Varchar(25)",
"Distanz" => "Varchar(2)",
"Uhr" => "Enum(array('Snap','Ballfreigabe','Down ohne Zeit','keine','läuft'))",
"Sonstiges" => "Varchar(50)",
"Antwort" => "HTMLText",
"SortOrder" => "Int",
"Grund" => "HTMLText",
"Pkt" =>"Enum(array('1','2','3','4','5','6','7','8','9','10','11','12'))"];

private static $has_one = [
"Quiz" => Quiz::class
];

private static $has_many = [

];

В Silverstripe 3 я выбрал запись викторины dataobject и вверху была ссылка для просмотра вопросов, связанных с выбранной викториной. Я скучаю по этой ссылке в Silverstripe 4. Я уверен, что мне просто не хватает мелочи. Но я не могу найти решение.

0

Решение

Это был FieldList.
В викторине объекта данных я добавил поля таким образом.

$fields = FieldList::create(
TextField::create('Name','Name des Quiz'),
DateField::create('bis','Quiz läuft bis'),
LiteralField::create("Text", "Vor der Aktivierung die Fragen eintragen. Sobald aktiviert wird bekommen die Benutzer eine E-Mail.<br /><br />"),
CheckboxField::create('aktiv', 'Quiz aktivieren')
);

Когда я использую старый способ моей версии SS 3. Оно работает. Так что проблема решена.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]