Php 索纳塔管理员-获取post数据

Php 索纳塔管理员-获取post数据,php,symfony,sonata-admin,Php,Symfony,Sonata Admin,我正在学习symfony2和sonata admin,遇到了一些问题,这就是其中之一。 我创建了一个admin类,它扩展了sonata admin,以下内容对我不起作用: $this->getForm()->get('page') 或 $this->getRequest()->request->get('page') 我试图传递configureFormFields中的一些隐藏字段,但在提交表单后,我无法使用上面的方法访问它们。我可以看到请求数组,但get('page')返回null。此外,请求

我正在学习symfony2和sonata admin,遇到了一些问题,这就是其中之一。
我创建了一个admin类,它扩展了sonata admin,以下内容对我不起作用:

$this->getForm()->get('page')

$this->getRequest()->request->get('page')

我试图传递
configureFormFields
中的一些隐藏字段,但在提交表单后,我无法使用上面的方法访问它们。我可以看到请求数组,但
get('page')
返回null。此外,请求数组是多维的

谢谢你的建议

下面是我尝试做的简单示例:

protected function configureFormFields(FormMapper $formMapper)  
{  
    $formMapper  
        ->add('title')  
        ->add(  
            'subobject',  
            'hidden',  
            array(  
                'mapped' => false,  
                'data' => 'sub'  
            )  
        )  
    ;  
}  
public function prePersist($object)  
{  
    $subobject_request = $this->getRequest()->request->get('subobject');  
    print_r($subobject_request); //is null  
    die();  
}  

我不确定,但对于mapped字段,您可以在prepersist的参数中直接获得值

您是否尝试直接从$object访问“子”值?像

$object->sub;

$this->getRequest()适用于symfony,但我认为在sonata管理包中有点不同。

您的尝试看起来不错。看看这篇文章:

我可以成功地使用:

public function preUpdate($object)
{
    $uniqid = $this->getRequest()->query->get('uniqid');
    $formData = $this->getRequest()->request->get($uniqid);
    var_dump($formData);exit;
}

检索所有提交的元素。

可能有点晚,但我希望这将对某人有所帮助:

$this->getForm()->get('subobject')->getData()

这只是关系
Office>Plan
和查找prop
Plan.nameEn
的一个示例 在
OfficeAdmin.php
中:

protected function configureFormFields(FormMapper $formMapper) {
    $formMapper->add('plan', 'sonata_type_admin')
}

public function preUpdate($marina) {
    if ($planName = $this->getForm()->get('plan')->get('name_en')->getData()) {}
}

你能再发布一点代码吗?至少有一些版本它不起作用,不确定我有哪些版本,在composer.json中,当我搜索索纳塔时,我只找到了5个带有这个词的捆绑包
注意:未定义变量:planName