0

編集または作成時に SonataAdminBundle に問題があります:

Symfony\Component\Locale\Stub\StubNumberFormatter::getSymbol() は実装されていません。完全なローカリゼーション機能を利用するには、「intl」拡張機能をインストールしてください。

また

致命的なエラー: 157 行目の F:\xampp\htdocs\Symfony2\vendor\symfony\symfony\src\Symfony\Component\Locale\Locale.php にクラス 'ResourceBundle' が見つかりません

基本ホスティングに php 拡張機能をインストールできません

私はこれを見つけましが、呼び出されたときにのみ機能しNumberFormatterます。明らかに、intl拡張機能を呼び出すために必要な各クラスを作成する必要がありますが、intl拡張機能なしで作業するための解決策/回避策/提案を他の方法で確認するために、ここで専門家に依頼します

4

1 に答える 1

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 のバージョンをアップグレードすると、変更が失われる可能性があります。

于 2014-05-25T13:31:05.563 に答える