Итак, у меня есть плагин, который производит информацию для меня на основе идентификатора пользователя.
Это происходит в модуле плагина 'pitch':
public function executeIndex(sfWebRequest $request)
{
$unique_id = $request->getParameter('unique_id');
$this->user = UserTable::getInstance()->getByToken($unique_id);
$this->forward404Unless($this->user);
$this->iplocation=new IPLocation();
$qualified_offers = new QualifiedOffers();
$this->creatives = $qualified_offers->applicableTo($this->user);
$this->match_type = UserDemoTable::getInstance()->getValue($this->user->id, 'match');
// Put the applicable creatives into the session for later use
$userCreatives = $this->creatives;
$this->getUser()->setAttribute('userCreatives', $userCreatives);
}
И затем я пытаюсь вызвать этот атрибут в следующем шаблоне (в другом модуле, называемом «home», с другим действием):
public function executePage(sfWebRequest $request)
{
$template = $this->findTemplate($request->getParameter('view'), $this->getUser()->getCulture());
$this->forward404Unless($template);
$this->setTemplate($template);
// Grab the creatives applicable to the user
$userCreatives = $this->getUser()->getAttribute( 'userCreatives' );
}
К сожалению, это не работает вообще.
Если я попробую это из действия, где изначально генерируется $ creatives:
$this->getUser()->setAttribute('userCreatives', $userCreatives);
$foo = $this->getUser()->getAttribute('userCreatives');
// Yee haw
print_r($foo);
Меня встретили с большим успехом. По сути, я делаю это только с двух разных контроллеров. Разве это не должно быть неактуально, учитывая, что я добавил userCreatives в сеанс пользователя?