Symfony2 Form Class中用户对象的致命错误

时间:2016-01-09 14:28:20

标签: php forms twitter-bootstrap symfony

我现在试图在我的应用程序中找到一个错误,也许有些人可以提示:

我正在使用Symfony2,FOSUserBundles和Bootstrap作为表单。在我的控制器中,我在createAction内创建了一个表单,用于根据用户输入小广告:

$smallAd = new SmallAd();
$user = $this->getUser();

$smalladForm = new SmallAdType();
$smalladForm->setUser($user);
$form = $this->createForm($smalladForm, $smallAd);

创建表单实例后,我设置了用户,因为我需要formbuilder的用户ID。在以前的版本中,我通过构造函数设置用户,这在我的本地机器上没有任何区别。

表单类SmallAdType看起来像这样(我删除了大多数表单字段):

public $user;

public function setUser($user)
{
    $this->user = $user;
}

public function buildform(FormbuilderInterface $builder, array $options)
{
    var_dump($this->user->getId());
    $builder
    ...
        ->add('user', 'entity', array(
                'class' => 'AppBundle\Entity\User',
                'query_builder' => function(EntityRepository $er) {
                    return $er->createQueryBuilder('u')
                    ->where('u.id = :id')->setParameter('id',$this->user->getId());
                },
                'label' => 'User',
                'required' => true
        ))
        .....
        ->add('save', 'submit', array('label' => 'Save the Ad'));
}

我的问题:在我的本地开发环境中,Everythings工作正常,在prod服务器上我收到以下错误消息:

int(2)

Fatal error: Using $this when not in object context in   xxxxxxx/Form/Type/SmallAdType.php on line 74

int(2)行来自var_dump($this->user->getId());函数,在这种情况下来自我的用户的正确值。我也可以转储完整的用户对象,这对我来说意味着它就存在了。

我检查了本地和生产服务器上的代码和配置几次,我发现没有区别。此外,我不知道现在的样子。任何建议都非常受欢迎。

0 个答案:

没有答案