Php 嵌入单个对象

Php 嵌入单个对象,php,symfony-2.0,Php,Symfony 2.0,我不熟悉Symfony2.0。我是从网站上学习的。我已经浏览了站点中给出的所有主题,但是我没有得到“嵌入单个对象”主题的输出,该主题包含在表单()主题中。我编写了所有代码,就像他们为“嵌入单个对象”所给出的那样,但它并没有进入数据库。当我提交我的表格时,它给了我下面所述的错误。我可以在不使用嵌入对象代码的情况下创建条目 错误:“可捕获的致命错误:参数1传递给Acme\TaskBundle\Entity\Task::setCategory()必须是第347行的Acme\TaskBundle\Ent

我不熟悉Symfony2.0。我是从网站上学习的。我已经浏览了站点中给出的所有主题,但是我没有得到“嵌入单个对象”主题的输出,该主题包含在表单()主题中。我编写了所有代码,就像他们为“嵌入单个对象”所给出的那样,但它并没有进入数据库。当我提交我的表格时,它给了我下面所述的错误。我可以在不使用嵌入对象代码的情况下创建条目

错误:“可捕获的致命错误:参数1传递给Acme\TaskBundle\Entity\Task::setCategory()必须是第347行的Acme\TaskBundle\Entity\Category实例,给定数组,在/opt/lampp/htdocs/kau.symfony2.com/vendor/symfony/src/symfony/Component/Form/Util/PropertyPath.php中调用,并在/opt/lampp/htdocs/kau.symfony2.com/src/Acme/TaskBundle/Entity/Task.php第52行中定义”

我找了很多,但找不到答案

文件路径:
Acme/TaskBundle/Form/Type/TaskType.php

<?php
// src/Acme/TaskBundle/Form/Type/TaskType.php
namespace Acme\TaskBundle\Form\Type;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilder;
class TaskType extends AbstractType
{
    public function buildForm(FormBuilder $builder, array $options)
    {
        $builder->add('task', 'text', array('max_length' => 20));
        $builder->add('address', 'textarea', array('required' => true, 'read_only' => false));
        $builder->add('dueDate', 'date');
        $builder->add('category', new CategoryType());    
    }

    public function getName()
    {
        return 'task';
    }
}
?>
<?php
namespace Acme\TaskBundle\Form\Type;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilder;

class CategoryType extends AbstractType
{
    public function buildForm(FormBuilder $builder, array $options)
    {
        $builder->add('name','text');
    }

    public function setDefaultOptions(OptionsResolverInterface $resolver)
    {
        $resolver->setDefaults(array(
            'data_class' => 'Acme\TaskBundle\Entity\Category',
        ));
    }

    public function getName()
    {
        return 'category';
    }
}
?>

你能展示你的代码吗?因为当您应该使用类别对象的实例时,错误告诉您使用数组

//show/Acme/TaskBundle/Entity/Task.php plz:)

并尝试改变:

$builder->add('category', new CategoryType());


谢谢你回复sl4sh。我已经按照您所说的编辑了问题并添加了代码文件。我已经按照您所描述的进行了更改,但它给出了错误:“对象“Symfony\Component\Form\FormView”的方法“name”在AcmeTaskBundle中不存在:默认值:new.html.twig在第24行”…错误发生在:{{Form row(Form.category.name)}在new.html.twig文件中。请注意,我在new.html.twig文件中包含了4行(从第22行到第25行)。类别{form_行(form.Category.name)}
$builder->add('category', new CategoryType());
$builder->add('category', 'collection', array('type' => new CategoryType));