2016-01-07 4 views
1

У меня есть страница, на которой я использую cfc. Например:Вызов CFC на другом уровне папки

<cfset cfcDashboard = new dashboard()> 
<cfset grab_image = cfcdashboard.getPicture()> 

Как я могу назвать cfc, если они находятся внутри папки? На данный момент они работают только в том случае, если они находятся на одном уровне или внутри одной и той же папки? Как вы называете cfc, который находится на другом уровне?

Или я не понимаю цель работы cfc?

+0

Трудно сказать. Что вы считаете целью cfc? –

+0

Я рассматриваю cfc что-то, чтобы хранить все мои функции, которые я могу использовать в любом месте приложения, но должен выяснить, каким образом вы вызываете его с разных уровней приложения. Люди предоставили мне много примеров, которые я очень ценю, но по какой-то причине я не могу заставить их работать. Только так, как я нашел, чтобы заставить его работать, это добавление одного и того же cfc во все эти папки ... но это определенно не кажется надлежащим образом:/ –

+0

Вариант 3 ответа Томалака - лучший способ добиться этого. Это то, что мы делаем, по большей части. Единственный раз, когда мы делаем иначе, - это когда мы создаем удаленные функции для использования с ajax. Это может быть функция наших собственных скудных талантов, но единственный способ заставить это работать - иметь cfc в том же каталоге, что и страница, пытающаяся его использовать. –

ответ

3

new ключевого слова синтаксический сахар для этого вызова:

<cfset cfcDashboard = createObject("component", "Dashboard")> 

правила, как ColdFusion разрешает имена CFC являются in the docs.

Если вы используете cfinvoke или cfobject тег или функцию CreateObject , чтобы получить доступ к CFC со страницы CFML, ColdFusion поиск каталогов в следующем порядке:

  1. Локальный каталог вызывающего абонента CFML страница
  2. Веб-корень
  3. Каталоги, указанные на странице «Пользовательские пути тегов» администратора ColdFusion

Вы можете использовать точечную нотацию, соответствующую любому из определенных путей поиска.

<cfset myDashboard = createObject("component", "my.custom.Dashboard")> 
<cfset myDashboard = new my.custom.Dashboard()> 

Найдет (где . означает текущий каталог шаблонов и / означает веб-корень):

  • ./my/custom/Dashboard.cfc
  • /my/custom/Dashboard.cfc
  • any/custom/tag/path/my/custom/Dashboard.cfc

Going "вверх" не представляется возможным е.

+0

Хммм, так что вы не можете подняться на уровень? поэтому, если ваша страница профиля находится внутри папки профилей, но cfc находится на уровне index.cfm, она не найдет ее? –

+0

Могу ли я дать вам пример, я пытаюсь добраться до работы Я не могу понять, что я делаю неправильно –

+0

У меня есть dashboard.cfm внутри папки панели инструментов Я пытаюсь просто встать на главную область следующего уровня, где панель инструментов ,cfc is –

Смежные вопросы