来自DB的TYPO3下拉项目

时间:2017-04-08 06:16:22

标签: typo3

我需要有一个下拉列表,其中包含来自前端数据库的项目。

    {namespace femanager=In2code\Femanager\ViewHelpers}
<f:render section="default" arguments="{_all}" />
<f:section name="default">
    <div class="femanager_fieldset femanager_origin control-group">
        <label for="femanager_field_origin" class="control-label">
            <f:translate key="tx_femanager_domain_model_user.origin" />
            <f:if condition="{femanager:Validation.IsRequiredField(fieldName:'origin')}">
                <span>*</span>
            </f:if>
        </label>
        <div class="controls">
            <femanager:form.select
                    id="femanager_field_origin"
                    property="origin"
                    options="{femanager:Form.GetCountries()}"
                    defaultOption="{f:translate(key:'pleaseChoose')}"
                    class="input-block-level"
                    additionalAttributes="{femanager:Validation.FormValidationData(settings:settings,fieldName:'origin')}" />
        </div>
    </div>
</f:section>

这是我输入的代码,它显示了国家/地区,但我需要从数据库表中获取项目。

请告诉我该怎么做?

1 个答案:

答案 0 :(得分:1)

您可以使用form中的form.select viewhelper并使用您的模型。

<强>模板

<f:form.select name="countries"
    options="{countries}" optionValueField="uid" optionLabelField="name"
    sortByOptionLabel="name"
    prependOptionLabel="Select one ..."
    prependOptionValue="0"/>

在Controller中分配您的模型

public function yourAction() {
    $countries = $this->countryRepository->findAll();
    $this->view->assign('countries', $countries);
    ...