Php 复制演示时出错“;在映射中不能定义序列项";

Php 复制演示时出错“;在映射中不能定义序列项";,php,forms,symfony,Php,Forms,Symfony,我在尝试复制Symfony提供的演示时出错。你可以在这里找到它 当我将表单包含在控制器中时,我可以让表单正常工作,但当我将表单设置为自己的类时,我最终会得到一个错误,上面写着 在映射中不能定义序列项 服务器错误-解析异常 日志返回: 严重-未捕获的PHP异常 Symfony\Component\Yaml\Exception\ParseException:“您不能定义 在映射“at”中时的序列项 /vagrant/vendor/symfony/symfony/src/symfony/Compone

我在尝试复制Symfony提供的演示时出错。你可以在这里找到它

当我将表单包含在控制器中时,我可以让表单正常工作,但当我将表单设置为自己的类时,我最终会得到一个错误,上面写着

在映射中不能定义序列项 服务器错误-解析异常

日志返回:

严重-未捕获的PHP异常 Symfony\Component\Yaml\Exception\ParseException:“您不能定义 在映射“at”中时的序列项 /vagrant/vendor/symfony/symfony/src/symfony/Component/Yaml/Parser.php 第81行

我似乎找不到问题所在

Task.php文件:

    <?php

namespace Acme\TaskBundle\Entity;

class Task
{
    protected $task;

    protected $dueDate;

    public function getTask()
    {
        return $this->task;
    }
    public function setTask($task)
    {
        $this->task = $task;
    }

    public function getDueDate()
    {
        return $this->dueDate;
    }
    public function setDueDate(\DateTime $dueDate = null)
    {
        $this->dueDate = $dueDate;
    }
}

问题是我没有定义数组的yml文件吗?

在类型类更改行中
->add('dueDate',null,array('mapped'=>false))
->add('dueDate',null,array())


您的
dueDate
字段确实已映射

您的yml文件中是否有这样的内容

stuff:
    thing1: one      // mapping
    thing2: two      // mapping
    thing3: three    // mapping
    - four           // sequence
根据我的猜测,错误在于不能在同一个数组语句中混合使用yaml“映射”和“序列”

所以它必须是

stuff:
    thing1: one
    thing2: two
    thing3: 
        - four


根据您尝试创建的阵列类型,仍然会产生相同的问题。我现在明白了。错误在您的配置中的某个位置。您是否使用YAML配置您的实体?我相信错误就在那里。我最初将它设置为映射,并认为我缺少一些东西,所以我将映射设置为false,以查看它是否可以解决错误,但它没有。看起来一切都应该正常运转。我看到了关于配置文件的其他评论,但是我在配置文件中没有设置任何会影响我所做的事情。我只是在上面添加了config.yml文件,这不是我所说的。您是否有实体的yaml文件?是否存在默认位置的映射?我没有创建任何具有映射的yml文件。我创建的唯一文件是我在顶部发布的演示中的文件。你是对的,它在我的验证文件中。这很有趣,因为我复制并粘贴了它,但我一定错过了什么。对不起,我不能增加声誉,否则我会的!谢谢!您的验证应该是
-DateTime:~
,而不是
-Type:\DateTime
。这可能不是问题的全部。这并没有解决问题,但感谢您的更正。
# Acme/TaskBundle/Resources/config/validation.yml
Acme\TaskBundle\Entity\Task:
    properties:
        task:
            - NotBlank: ~
        dueDate:
            - NotBlank: ~
            - Type: \DateTime
stuff:
    thing1: one      // mapping
    thing2: two      // mapping
    thing3: three    // mapping
    - four           // sequence
stuff:
    thing1: one
    thing2: two
    thing3: 
        - four
stuff:
    thing1: one
    thing2: two
    thing3: three
    thing4: four