0

有没有办法从 symfony1.4 中的 ClassGeneratorConfiguration 访问会话变量?我需要它,因为我想根据会话变量设置默认过滤字段值。

4

2 回答 2

2

您可以从上下文中获取它(我认为没有其他方法),并且您可以使用该getFilterDefaults方法为字段设置默认值或使用将getFilterFormOptions用户作为选项传递到表单并在那里实现逻辑。这就是我通常的做法:

class productGeneratorConfiguration extends BaseProductGeneratorConfiguration
{
  /**
   * @return sfBasicSecurityUser
   */
  public function getUser()
  {
    return sfContext::getInstance()->getUser();
  }

  public function getFilterFormOptions()
  {
    return array('user' => $this->getUser());
  }

  public function getFilterDefaults()
  {
    return array(
      'some_field' => $this->getUser()->getSomething() ? 'a' : 'b';
    );
  }
}
于 2013-08-18T09:23:32.850 回答
0

您可以访问会话变量,如下所示:

$varname = sfContext::getInstance->getUser()->getAttribute('your_field');

于 2013-09-08T16:59:02.110 回答