2016-01-21 81 views
8

語境:Symfony的CRUD詔書:未能加載類型「的日期時間」

我創建的symfony 3.項目我的數據庫有一個表的字段日期時間

用以下命令創建一臺簡單的CRUD應用

php bin/console doctrine:mapping:import --force adminBundle xml 

php bin/console doctrine:mapping:convert annotation ./src 

php bin/console doctrine:generate:entities adminBundle 

php bin/console generate:doctrine:crud 

錯誤:

所以我的CRUD做,但是當我編輯一行拋出錯誤

Could not load type "datetime" 500 Internal Server Error - InvalidArgumentException

堆棧跟蹤

in vendor/symfony/symfony/src/Symfony/Component/Form/FormRegistry.php at line 87 

我認爲不能加載類型「datetme」,我嘗試註冊我的形式我services.yml的部分服務,但我不知道如何做到這一點?爲類型日期時間。

有什麼想法?提前致謝。

回答

22

看起來像CRUD發生器中的錯誤。它使用一種類型的別名,而不是完全合格的類名:因爲Symfony的3.0

$builder->add('fieldName', 'textarea'); 

完全合格的類名是必需的:

$builder->add('fieldName', DateTimeType::class); 

請檢查生成的表單類型。

+2

謝謝!好像symfony 3 generator不自動使用FQCN ....這是個bug。去報告:) –

+1

什麼是DatetimeType的完整命名空間? –

+1

Symfony \ Component \ Form \ Extension \ Core \ Type \ DateTimeType – Filo

2

謝謝你,謝謝你指出。我不知道爲什麼,但指定完全合格的類名稱並沒有解決我的問題。一起刪除日期時間別名。

更改:

$builder 
    ->add('name') 
    ->add('time', 'datetime') 
    ->add('location') 
; 

要:

$builder 
    ->add('name') 
    ->add('time') 
    ->add('location') 
; 
+2

嘗試先導入DateTime類 「use Symfony \ Component \ Form \ Extension \ Core \ Type \ DateTimeType;」 然後 「$ builder-> add('time',DateTimeType :: class)」 – Oleg

-1

symfony的3.0V PHP 5.6V

Symfony\Component\Form\Extension\Core\Type\DateTimeType;

->add('perfecnacimiento', DateTimeType::class)

+0

StackOverflow的好答案應該包括一個解釋,而不僅僅是代碼。 – yakatz