我正在学习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();
}
也许有点晚,但我希望它对某人有帮助:
$this->getForm()->get('subobject')->getData()
您的尝试看起来不错。看这篇文章: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;
}
检索所有提交的元素。
我不确定,但是对于映射字段,您可以直接在prepersist的参数中获取值。
您是否尝试直接从$ object访问您的'sub'值?像
$object->sub;
$ this-> getRequest()用于symfony,但我认为它在奏鸣曲管理捆绑中有点不同..
只是关系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()) {}
}