sonata管理员-获取帖子数据

问题描述 投票:6回答:4

我正在学习symfony2和奏鸣曲管理员,遇到了几个问题,这就是其中之一。我创建了一个扩展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();  
}  
php symfony sonata-admin
4个回答
6
投票

也许有点晚,但我希望它对某人有帮助:

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

4
投票

您的尝试看起来不错。看这篇文章:https://groups.google.com/forum/#!topic/sonata-users/NS0mTAAHt7o

我可以成功使用:

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

检索所有提交的元素。


0
投票

我不确定,但是对于映射字段,您可以直接在prepersist的参数中获取值。

您是否尝试直接从$ object访问您的'sub'值?像

$object->sub;

$ this-> getRequest()用于symfony,但我认为它在奏鸣曲管理捆绑中有点不同..


0
投票

只是关系Office > Plan和寻找道具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()) {}
}
© www.soinside.com 2019 - 2024. All rights reserved.