:: buildView()必须与Symfony \ Component \ Form \ FormTypeInterface :: buildView()的兼容

时间:2012-07-03 09:10:19

标签: symfony symfony-forms

我试图为我的Symfony2表单实现自定义字段类型,但无论出于何种原因,我都会遇到致命错误,如本问题标题中所述。
我已经从界面复制了原始声明,但无济于事: - (

<?php
namespace Yanic\HomeBundle\Form\Type;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilder;
use Symfony\Component\Form\FormView;
use Symfony\Component\Form\FormInterface;
use Symfony\Component\Form\FormError;
use Symfony\Component\Form\CallbackValidator;
use Symfony\Component\Form\FormValidatorInterface;

class ShowOnlyType extends AbstractType
{
/**
     * {@inheritdoc}
     */
    function buildView(FormViewInterface $view, FormInterface $form, array $options)
    {
        $view->addVars(array(
            'value'   => date( 'd/m/Y H:i', $options['value'] )
        ));
    }

    /**
    * {@inheritdoc}
    */
    public function setDefaultOptions(OptionsResolverInterface $resolver)
    {

        $resolver->setDefaults(array(
                'data_class' => 'DateTime'
        ));
    }

    public function getParent()
    {
        return 'form';
    }

    public function getName()
    {
        return 'showOnly';
    }
}

感谢您的帮助

1 个答案:

答案 0 :(得分:8)

以下an answer可以解决您的问题。

最有可能的原因是你没有use所需的参数类型。

use Symfony\Component\Form\AbstractType,
use Symfony\Component\Form\FormViewInterface;
use Symfony\Component\Form\FormInterface;

//...
class SomeType extends AbstractType
{
    public function buildView(FormViewInterface $view, FormInterface $form, array $options)
}