Элемент X не определен в cfloop для динамически генерируемых именованных переключателей - PullRequest
0 голосов
/ 14 января 2019

Я кодирую эту новую функцию для клиента. Мне нужно дать пользователю права на следующее:

  • Район
  • Операционный центр
  • Проекты в этом операционном центре

Вот скриншот моей страницы add_a_user, которая показывает район> Ops Center> макет проекта:

enter image description here

В настоящее время в моей таблице округов есть 8 округов, но только у «1» и «4» есть оперативные центры. Вот почему вы видите только те на этом скриншоте. Таким образом, в каждом районе может быть более одного оперативного центра, и многие проекты связаны с отдельным оперативным центром.

Итак, моя структура таблиц на сервере MS SQL выглядит следующим образом:

  • Районы / Столбцы :

    • [district_id]
    • [district_name]
  • Operation_centers / Столбцы :

    • operation_center_id
    • operation_center_name
    • oc_district_id (связывает этот оперативный центр с районом, к которому он относится)
  • Проекты / Столбцы :

    • project_name_id
    • project_name
    • project_oc_id (связывает проект с центром операций, которому он принадлежит)

У меня также есть 3 другие таблицы, в которых хранятся права пользователей:

  • district_access

    • district_access_id (идентификатор доступа к району)
    • district_user_nm (пользователь, имеющий право на этот район)
    • district_role (содержит значение для своей роли - администратор, менеджер, редактор, пользователь)
  • ops_access / Столбцы:

    • ops_access_id (идентификатор доступа к операционному центру)
    • ops_user_nm (пользователь, имеющий доступ к этому операционному центру)
  • Project_access / Столбцы:

    • project_access_id (идентификатор доступа к проекту)
    • project_user_nm (пользователь, имеющий доступ к этому проекту)

Я назвал переключатели динамически следующим образом:

f_district_access_#district_id# (district access)
f_da_#district_id# (district role)
f_ops_#operation_center_id# (ops center access)
f_projects_#getdistricts.project_name_id# (project access)

На моей странице действий я пытаюсь использовать этот cfloop (и я делаю cfloop для ops центров и проекта):

<CFQUERY  datasource="#datasource#" name="get_district_count">
    SELECT MAX(district_id) AS DC
    FROM   districts
</CFQUERY>
<cfset DC = get_district_count.DC>
<!-- Insert district access-->
<CFLOOP from="1" to="#DC#" index="dis">
    <cfset districtname = "f_district_access_" & dis>
    <cfif structKeyExists(form,"#districtname#")>
        <cfquery datasource="#datasource#" name="submit_districts">
            INSERT into district_access
            (
                district_access_id,
                district_user_nm,
                district_role
            )
            Values(
                #form["f_district_access_" & dis]#,
                #NEWID#,
                #form["f_da_" & dis]#
            )
        </cfquery>
    </cfif>
</CFLOOP>

Теперь я получаю эту ошибку:

Элемент F_DA_4 не определен в объекте Java типа class coldfusion.filter.FormScope.

Итак, мои вопросы: я слишком усложняю это и как мне это упростить?

...