Вопрос

Мне интересно, есть ли эффективный способ поместить меню в массив или любой другой тип данных. С PHP я бы сделал что -то вроде этого:

$menu[1] = "home";
$menu[2] = "news";
$menu[3]["item"] = "products";
$menu[3]["subMenu"][1] = "jackets";
$menu[3]["subMenu"][2] = "T-shirts";
$menu[4] = "contact";

Однако я понятия не имею, как это сделать в Coldfusion. Я хочу взять эти данные из БД и подтолкнуть их в объект, это позволит мне генерировать HTML из массива.

Это было полезно?

Решение

На самом деле это очень похоже. Это предполагает ColdFusion 8 (или выше) для массива ([]) и struct ({}) литералы:

<cfset menu = [] /> <!--- Create initial array --->

<cfset menu[1] = "home" />
<cfset menu[2] = "news" />
<cfset menu[3] = {} /> <!--- Create structure --->
<cfset menu[3]["item"] = "products" /> <!--- Address structure by key --->
<cfset menu[3]["subMenu"] = [] />
<cfset menu[3]["subMenu"][1] = "jackets" />
<cfset menu[3]["subMenu"][2] = "T-shirts" />
<cfset menu[4] = "contact" />

<cfdump var="#menu#" /> <!--- Output --->

Надеюсь, это поможет!

Другие советы

Чтобы сделать ответ Ciaran на шаг дальше, вы можете сделать это полностью с объектными литералами в CF 9:

<cfset menu = ["home",
               "news",
               {"item"="products",
               "subMenu"= ["jackets",
                           "T-shirts"]},
               "contact"]>
<cfdump var="#menu#" /> <!--- Output --->
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top