2011-10-27 3 views
1

symfony2でクラッシュを作成しようとすると問題が発生します。私はdatetimeの選択肢を表示することはできません。私はいつもこの問題を抱えています。Symfony2フォーム日時バグ

Catchable Fatal Error: Argument 1 passed to Symfony\Component\Form\Extension\Core\ChoiceList\MonthChoiceList::__construct() must be an instance of IntlDateFormatter, null given, called in

にformTypeコード:

public function buildForm(FormBuilder $builder, array $options) 
{ 
    $builder 
     ->add('nome') 
     ->add('email') 
     ->add('senha') 
     ->add('is_super') 
     ->add('is_active') 
     ->add('created') ; 
} 
+1

一部の書式設定コードを表示します。 – Problematic

+0

パブリック関数buildForm(FormBuilder $ビルダー、配列$オプション) { $ビルダー - >( '・ノーム')を追加し - >( 'メール')を追加し - >( 'senha')を追加し - >を追加( 'is_super') - > add( 'is_active') - > add( 'created') ; } – Gaspar

答えて

4

私は同じ問題を抱えていたとphp_intl extensionをインストールすることによってそれを解決しました。パッケージはUbuntuのphp5-intlです。

+0

私はDLLの拡張子がない可能性があると思った。しかし、Symfonyのドキュメントのようにインストールされていることが推奨されます。 – Gaspar

+0

コントローラでサンプルコードをテストして実際に正しくインストールされていることを確認しましたか? IntlDateFormatterの[documentation](http://php.net/manual/en/intldateformatter.create.php)に含まれているサンプルを試してみてください。また、 'created'フィールドが日付タイプとして定義されていることを確認してください。 –

+0

はいこれは 'datetime'タイプです! – Gaspar

3

ありがとうございます!あなたはintlが必要です:それから(wamp/php 5.3.9で)それを無効にしてください!

If you use Wamp and PHP 5.3.9, this problem may disappear if you turn off the intl extension.

時々intl拡張子にdllがありません。 icu * .ddlをあなたのapache/bin /にあるあなたのphpフォルダからコピーします。 (おそらく、wamp php.iniがapache/binにあるからです)。

+1

それは異常ですが、Intl拡張機能を無効にするとエラーが取り除かれます。私はそれを私の開発者のマシンでのみ使用しています... – jkucharovic

関連する問題