【发布时间】:2019-04-25 20:55:22
【问题描述】:
我正在尝试输出一组图标(来自一组 GuidePages),我总是希望在其中显示 5 个图标,但需要能够选择哪些图标适用于该特定页面。
在我想要显示它们的页面中:
private static $many_many = array(
'GuidePages' => GuidePage::class
);
和
$source = GuidePages::get()->map('ID', 'Name');
$fields->addFieldToTab('Root.Main',CheckboxSetField::create('GuidePages','Select guide which apply', $source));
这很好,我可以选择图标,但它显然只会输出我选择的实际图标(即 3 个而不是全部 5 个)。
我正在尝试找到一种始终显示 5 的方法,但能够选择少数应用并在模板中循环它们(将活动类添加到选定的类)。
如果有另一种更简单的方法可以做到这一点,则不一定需要是 many_many 或两组页面之间的任何关系......即只需将值放入 DataList 或其他东西......
【问题讨论】:
-
您可以考虑使用“许多额外字段”来确定它是否被选中,然后您仍然可以迭代您的 GuidePages 列表并让该字段可供检查:docs.silverstripe.org/en/4/developer_guides/model/relations/…
-
感谢 Robbie 的建议,最终采用了稍微不同的方法..
标签: php silverstripe silverstripe-4