2011-10-27 44 views
1

當我嘗試在symfony2中創建crud時,出現問題。我無法顯示日期時間選擇。我總是遇到這個問題。Symfony2 Form日期時間錯誤

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。你從你的apache/bin /中的php文件夾複製你的icu * .ddl。 (可能是因爲在php.ini中是在apache/bin中)。

+1

這很奇怪,但禁用Intl擴展擺脫錯誤。我只在我的開發人員的機器上使用過它... – jkucharovic