【问题标题】:Symfony2's Form Factory is throwing a warning on an array_replace(). How can I resolve this warning?Symfony2 的 Form Factory 对 array_replace() 发出警告。如何解决此警告?
【发布时间】:2011-12-03 09:35:35
【问题描述】:

我在 Symfony2 上收到以下错误:

警告:array_replace() [function.array-replace]:参数 #1 不是 /home/rackelas/public_html/dev/Symfony/vendor/symfony/src/Symfony/Component/Form/FormFactory.php 中的数组第 236 行

将以下内容添加到 Acme/Bundle/Form/Type/ContactType.php 进行验证后:

public function getDefaultOptions(array $options)
{
    $collectionConstraint = new Collection(array(
        'name' => new MinLength(5),
        'email' => new Email(array('message' => 'Invalid email address')),
    ));

    $options['validation_constraint'] = $collectionConstraint;
}

来源:http://symfony.com/doc/current/book/forms.html#using-a-form-without-a-class

任何正确方向的帮助将不胜感激。

【问题讨论】:

  • 你能安装 XDebug 吗?它会给你一个完整的堆栈跟踪,而不仅仅是一行错误。
  • 我不知道该怎么做,但我会给它一个谷歌搜索,也许下次会有所帮助。谢谢。

标签: php symfony symfony-forms


【解决方案1】:

您收到的不是错误,而是警告。

警告表明该函数正在寻找一个数组,但您传递给它的是一个非数组变量。

所以第 236 行的 FormFactory.php 使用不是数组的参数调用 array_replace()。这就是您应该寻求解决此问题的地方。

【讨论】:

  • 抱歉回复晚了,我没有收到通知,所以我认为问题仍未得到解答。我想不通,我尝试了 David Dan 的建议,但我仍然不断收到错误,所以我放弃了使用没有类的表单并继续为它创建了一个实体。实际上结果更好,因为现在我可以将信息从数据库中提取到我的管理区域。谢谢。
【解决方案2】:

尝试将return $options; 添加到您的 getDefaultOptions 方法中。

【讨论】:

    猜你喜欢
    • 2012-06-14
    • 1970-01-01
    • 2013-04-29
    • 2020-04-07
    • 2017-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多