use*_*760 5 symfony symfony-sonata
我正在尝试设置表单类型"sonata_type_immutable_array",如下所示:
->add('metadatos', 'sonata_type_immutable_array', array(
'keys' => array(
array('Test', 'text', array('required' => false)),
array('URL', 'url', array('required' => false)),
)
))
Run Code Online (Sandbox Code Playgroud)
像这样保存:
public function setMetadatos(\Portal\EntradasBundle\Entity\EntradaMeta $metadatos = null)
{
$this->metadatos = $metadatos;
return $this;
}
Run Code Online (Sandbox Code Playgroud)
但总是得到错误:
可捕获的致命错误:传递给Portal\EntradasBundle\Entity\Entrada :: setMetadatos()的参数1必须是Portal\EntradasBundle\Entity\EntradaMeta的实例,给出的数组
我不知道如何设置datatransformer(ArrayToModelTransformer)来达到这个目的.
任何人都可以帮助我PLZ.提前致谢!
小智 1
数据转换器非常简单,看看这个: http://symfony.com/doc/current/cookbook/form/data_transformers.html
数据转换器的使用方式如下:
/**
* @var ObjectManager
*/
private $om;
/**
* @param ObjectManager $om
*/
public function __construct($om)
{
$this->om = $om;
}
[..]
$yourTransformer = new YourDataTransformer($this->om);
And then ->addModelTransformer($yourTransformer))
Run Code Online (Sandbox Code Playgroud)
它用于获取对象的 id 和/或从 id 获取对象。
| 归档时间: |
|
| 查看次数: |
1990 次 |
| 最近记录: |