SonataAdminBundle没有intl扩展名

时间:2013-05-11 23:29:27

标签: symfony symfony-2.1 sonata-admin

我在编辑或创建时遇到SonataAdminBundle问题:

  

Symfony \ Component \ Locale \ Stub \ StubNumberFormatter :: getSymbol()是   未实现。请安装' intl'扩展为完整   本地化能力。

  

致命错误:Class' ResourceBundle'找不到   F:\ XAMPP \ htdocs中\ Symfony2的\供应商\ symfony的\ symfony中的\ src \的Symfony \分量\区域\ Locale.php   在第157行

我无法在我的基本主机

中安装php扩展程序

我找到了this,但它只是在调用NumberFormatter时才有效,显然我必须创建调用intl扩展所需的每个类,但我在这里请专家看看其他方法解决方案/解决方法/建议在没有intl扩展的情况下开始工作

1 个答案:

答案 0 :(得分:0)

问题是函数getSymbole未在Symfony \ Component \ Locale \ Stub \ StubNumberFormatter中定义。抛出异常,这就是它的正文:

  public function getSymbol($attr)
{
    throw new MethodNotImplementedException(__METHOD__);
}

应该实现删除此异常,您可以这样修改:

        public function getSymbol($attr)
    {
    switch($attr) {
      case self::CURRENCY_SYMBOL:
        return '$';
      case self::DECIMAL_SEPARATOR_SYMBOL:
        return '.';
      case self::DIGIT_SYMBOL:
        return '#';
      case self::EXPONENTIAL_SYMBOL:
        return 'E';
      case self::GROUPING_SEPARATOR_SYMBOL:
        return ',';
        ;
  }

这个修改对我很好,我遇到了同样的问题。但是,如果您通过composer升级symfony版本,则可能会丢失修改。