forms - TYPO3 | Extbase / Fluid - 我该如何填写来自域对象/数据库?
问题描述
嗨,我正在为 <f:form.select> 苦苦挣扎,我需要用选项组填充值,但根据手册,我只能找到如何手动创建 optgroup。
有人知道用对象/数据库中的值填充选择的方法吗?
此选择工作正常,但显然不会创建选项组
<f:form.select options="{positionen}" optionLabelField="title" multiple="1" id="position" property="position" size="10" class="form-control select2-hs" />
现在我该如何修改视图,使其如下所示:
<select class="form-control select2-multiple select2-multiple-max3" name="position[]">
<optgroup label="Geschäftsführung / Management">
<option value="1">Geschäftsführer KMU (Bereich Handel / Dienstleistung)</option>
<option value="2">Geschäftsführer Großunternehmen (Bereich Handel / Dienstleistung)</option>
<option value="3">Geschäftsführer KMU (Bereich Produktion)</option>
</optgroup>
<optgroup label="Steuern / Revision / Treuhand">
...
对象 {positionen} 的内容如下所示:( 流体调试输出的屏幕截图)
解决方案
您将需要自己的分组逻辑,通过在控制器中准备组或使用<f:groupedFor>
:
<f:select property="position">
<f:groupedFor
each="{positions}"
as="areaPositions"
groupBy="area"
groupKey="area"
>
<f:form.select.optgroup label="{area.title}">
<f:for each="{areaPositions}" as="position">
<f:form.select.option value="{position.uid}">
{position.title}
</f:form.select.option>
</f:for>
</f:form.select.optgroup>
</f:groupedFor>
</f:select>
这里假设您已经加载了所有可能的positions
内容(例如从 a PositionRepository
)并将其传递给模板。每个位置都应该有一个相关的area
(1:1),每个区域应该有一个title
. 这样,您可以按位置对位置进行分组,area
并将该区域title
用作选项组标签。
之后,每个区域的所有位置都呈现为选择选项,假设每个位置都有一个title
.
推荐阅读
- python - Python - 附加到错误的列表
- javascript - 如何将第二个(隐藏)值添加到 datatables.net 中的单元格?
- python - 从 .json 文档中提取特定单词
- javascript - 在不考虑相同数组位置的情况下计算重复元素的问题
- selenium - 有什么方法可以使用 xpath 单击 Facebook Messenger 输入字段?
- postgresql - 将慢速 PostgreSQL 查询记录到 Docker 控制台
- django-forms - 通过联系表单 Django 发送带有附件的电子邮件
- javascript - 每秒更新 useEffect 中的状态 10 秒
- javascript - 为什么 React App 在网页上出现两次?
- ruby-on-rails - 有没有办法在 Ruby 中读取不同的文件类型?