ColdFusion ORM не может найти CFC при использовании виртуального каталога - PullRequest
3 голосов
/ 30 сентября 2011

У меня есть несколько сущностей с отношениями:

component name="Store" persistent="true"
{
    property name="Products" fieldtype="one-to-many" cfc="Product";
}

component name="Product" persistent="true"
{
    property name="Store" fieldtype="many-to-one" cfc="Store";
}

Приведенный выше код упрощен. Мой проект состоял в C:\ColdFusion9\wwwroot\StoreTracker, и все работало отлично.

Но затем мне пришлось переместить его в виртуальный каталог. Я переместил свой проект на C:\Projects\StoreTracker, но теперь ORM больше не работает со следующей ошибкой:

Невозможно загрузить целевое хранилище CFC для свойства отношения Store в продукте CFC.

Не удалось найти компонент ColdFusion или Store Store.

Если я полностью укажу имя, используя:

property name="Store" fieldtype="many-to-one" cfc="entities.Store";

тогда ORM работает. Кто-нибудь знает, почему перемещение его в виртуальный каталог заставляет ORM искать в неправильной папке постоянные сущности, и если есть более простой способ изменить, в какой папке он ищет, чтобы мне не приходилось полностью определять все отношения? *

Edit:

Вот соответствующая часть в Application.cfc:

this.ormSettings = { cfclocation="entities" };

И структура папок для папки модели:

C: \ Projects \ StoreTracker \ субъектов

В папке entity нет подпапок, и все мои постоянные сущности находятся там.

Мне удалось заставить его работать правильно, если я добавлю следующую строку в Application.cfc:

this.mappings["/entities"] = "C:\Projects\StoreTracker\entities";

Хотя я не уверен, почему это работает. Без этого CF ORM, кажется, прекрасно читает объекты, если они имеют только простые свойства, но когда есть связь, он взрывается, говоря, что не может найти связанный CFC. Возможно, ошибка?

1 Ответ

4 голосов
/ 30 сентября 2011

Если под виртуальным каталогом вы имеете в виду виртуальный каталог, настроенный в Apache или IIS, то это имеет смысл.Эти виртуальные каталоги существуют на веб-сервере, а не в ColdFusion.CF не знает о них.

Возможно, вам необходимо создать отображение ColdFusion для вашего приложения.Я не уверен точно, как структурировано ваше приложение или куда вы помещаете объекты ORM, но вы можете добавить что-то подобное в файл Application.cfc в области псевдо-конструктора.: О, и не забудьте ormReload ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...