Хорошо. Надеюсь, я понимаю вашу цель.
Прежде всего, нет метода redirector
непосредственно в экземпляре Zend_Controller_Action
.
Итак, это:
$this->redirector->gotoSimple('manage', 'team', null, array('id' => $teamID));
Должно быть так:
$this->_helper->redirector->gotoSimple('manage', 'team', null, array('id' => $teamID));
Если, конечно, вы не присвоили перенаправитель свойству контроллера. В этом случае вы должны быть правы, но я бы дважды это проверил.
Кроме того, вызов метода _redirect
или помощника по действиям Redirector во время запроса XHR перенаправит только сам запрос XHR . Вы пытаетесь перенаправить запрос XHR? Или фактически перенаправить браузер пользователя на другую страницу?
Edit:
Хорошо. Итак, ж / т / т ваш комментарий:
Ваша цель - перенаправить сеанс браузера пользователя на страницу, отличную от запроса XHR, если соблюдены определенные условия. Redirector action helper здесь не пригодится. В запросе XHR / Ajax нет ничего особенного ... если он видит перенаправление 301/302, он охотно следует ему, как обычный запрос браузера. Это не смешно.
Итак, чтобы решить вашу проблему, вам нужно сделать что-то немного более нестандартное. Вот что будет работать:
- Во время запроса Ajax, если выполнены условия для перенаправления пользователя, отправьте клиенту какой-то особый ответ; это может быть что угодно ... конкретная строка, ответ JSON ... все, что вы можете легко проверить.
- Когда вы получите ответ на стороне клиента, проверьте его, чтобы узнать, является ли это специальное сообщение, отправленное вами на шаге 1.
- Если это так, вам придется предварительно выполнить перенаправление, используя Javascript.
window.location = whatever
будет работать просто отлично.