Перенаправление в Model-Glue

Есть это приложение, которое мы запускаем параллельно, прежде чем переместить его с внешнего сервера на наши внутренние серверы. Это приложение состоит из двух частей: общедоступной/незащищенной части (каталог A) и защищенной части (каталог B). Все это подключено в Model-Glue/Coldspring.

В рамках процесса регистрации пользователя происходит перенаправление из каталога A в B. Однако при этом возникает ошибка: «Model-Glue: нет известного обработчика событий для '/path/to/Direcory B/x.cfm '.

Вот фрагмент ModelGlue:

<event-handler name="do.emailUser">
    <broadcasts>
        <message name="emailRegisterAction" />
    </broadcasts>
    <results>
        <result do="/path/to/directory B/x.cfm" redirect="true" />
    </results>
    <views />
</event-handler>

Я попытался скопировать общий файл в каталог A, но это не СУХОЕ решение и похоже на взлом. Пожалуй, стоит отметить, что код работает в продакшене на внешних серверах, но не работает в нашей среде разработки.

Любая помощь будет оценена. Спасибо


person McFash    schedule 08.09.2015    source источник


Ответы (1)


Тема старая, может в будущем кому пригодится.

То, что нужно запомнить.

<result> ожидает три атрибута.

  1. name: Предполагается, что это имя результата, которое вы устанавливаете на своем контроллере.
  2. do : Событие, которое должно быть выполнено при создании результата с этим name.
  3. redirect : Условие, указывающее, следует ли перенаправлять или нет.

Итак, исходя из этих условий. В идеале ваш <event-handler> должен выглядеть примерно так.

<event-handler name="do.emailUser">
    <broadcasts>
        <message name="emailRegisterAction" />
    </broadcasts>
    <results>
        <result name="goToX" do="do.eventToXFile" redirect="true" />
    </results>
    <views />
</event-handler>
<event-handler name="do.eventToXFile">
    <broadcasts>
        <message name="yourMessageListner" />
    </broadcasts>
    <results>
        <result do="view.template" />
    </results>
    <views>
        <include name="body" template="/path/to/directory B/x.cfm" />
    </views>
</event-handler>

Как только вы установите <cfset arguments.event.addResult("goToX")> в функции emailRegisterAction, страница будет перенаправлена ​​на событие do.eventToXFile, которое, в свою очередь, выполняет x.cfm.

person rrk    schedule 16.02.2016