【问题标题】:Can't construct a NumberFormatter无法构造 NumberFormatter
【发布时间】:2012-01-31 12:00:40
【问题描述】:

我仍在开发 symfony2 应用程序,当我尝试提交嵌入式表单时,我得到了

致命错误:在 C:\wamp\www\Symfony\vendor\symfony\src\Symfony\Component\Form\Extension\Core\DataTransformer\NumberToLocalizedStringTransformer.php 中的非对象上调用成员函数 setAttribute()在第 130 行

一些基本的 NumberFormatter 代码:

$fmt = new NumberFormatter(locale_get_default(), NumberFormatter::DECIMAL);

echo $fmt->格式(123.123123);

事实上,尽管我启用了 intl,但我什至无法构造 NumberFormatter 对象。 我目前正在开发 WAMP 2.2c

会议:

PHP 5.3.9 国际 1.1.0.0

有什么想法吗? 谢谢。

【问题讨论】:

  • 我想知道为什么 symfony 不早点发出这个缺陷的信号。你应该显示一些代码。
  • 搞定了,但确实是NumberFormatter构造问题。
  • 那么您发布的代码也给出了致命错误?
  • 是的,完全一样。当然除了文件名..
  • 显然,除了方法。另一个有趣的事情是它完美地运行在我的 Archlinux 上。我在某处听说这是一个 int.dll 问题......但是如何?什么时候 ?什么!?

标签: php symfony wamp


【解决方案1】:

您是否尝试过:

$fmt = new \NumberFormatter( locale_get_default(), \NumberFormatter::DECIMAL );

或添加:

use \NumberFormatter as NumberFormatter;

【讨论】:

  • 我没有在 symfony 中实现它,但它已经被这样调用了。谢谢。事实上,我上面显示的小脚本与 symfony2 无关。但是我在 Symfony 中发现了“错误”。
【解决方案2】:

好吧好吧……

经过一番研究,我听说这实际上是一个 ICU dll 问题。所以我去了他们的网站,下载+安装。什么都没发生。

所以,我刚到这里:http://windows.php.net/download/ 我下载了我安装的相同版本,拿起所有 icu*.dll 文件并将其放在 wamp/bin/php/php5.3.9/ 中

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-03
    • 1970-01-01
    • 1970-01-01
    • 2012-09-02
    • 2019-12-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多