我的表单中有来自 simplecms 的实体 Page 的问题我想在数组 Extras 中添加一个项目,所以我在我的 formtype 中添加了它:
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Cmf\Bundle\SimpleCmsBundle\Doctrine\Phpcr\Page;
class PageType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('title', 'text', array(
'label' => 'Titre',
'attr' => array('placeholder' => 'Titre complet de la page')
))
->add('name', 'text', array(
'label' => 'Label',
'attr' => array('placeholder' => 'nom-simplifie-de-la-page')
))
->add('body', 'ckeditor')
->add('locale', 'hidden')
->add('publishable')
->add('extras_link','text', array(
'property_path' =>"extras['link']",
));
}
变量在 Page 类中(我不必重写它)和函数 removeExtra() 和 addExtra() 也是(我的表单营养所必需的)
/**
* Add a single key - value pair to extras
*
* @param string $key
* @param string $value - if this is not a string it is cast to one
*/
public function addExtra($key, $value)
{
$this->extras[$key] = (string) $value;
}
/**
* Remove a single key - value pair from extras, if it was set.
*
* @param string $key
*/
public function removeExtra($key)
{
if (array_key_exists($key, $this->extras)) {
unset($this->extras[$key]);
}
}
表单正在工作,但是当我提交时,它发现 removeExtra() 但不是 addExtra()
“找到公共方法“removeExtra()”,但在类 Symfony\Cmf\Bundle\SimpleCmsBundle\Doctrine\Phpcr\Page 上没有找到公共“addExtra()”
有人已经有这个问题了吗?或者知道如何在额外内容中添加数据?THX(对不起我的英语)