![](/img/trans.png)
[英]Undefined type 'Symfony\Component\Form\AbstractType' and 'Symfony\Component\Form\FormBuilderInterface' also OptionsResolver is undefined
[英]Symfony 4 - Class Symfony\Component\Form\AbstractType not found
嘗試通過文檔上傳文件:
https://symfony.com/doc/current/controller/upload_file.html
我粘貼了代碼:
// src/Form/ProductType.php
namespace App\Form;
use App\Entity\Product;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Form\Extension\Core\Type\FileType;
class ProductType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
// ...
->add('brochure', FileType::class, array('label' => 'Brochure (PDF file)'))
// ...
;
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => Product::class,
));
}
}
並得到錯誤
在E:\\ projektai \\ php projektai \\ htdocs \\ mokomieji \\ symfony_4_demo \\ config / services.yaml中找不到Symfony \\ Component \\ Form \\ AbstractType類(已在資源“ E:\\ projektai \\ php projektai \\ htdocs \\ mokomieji \\ symfony_4_demo中加載” \\ config / services.yaml”)。
我已經看到PhpStorm已發出警告,未找到AbstractType。 這里出什么問題了,怎么解決?
composer.json:
{
"type": "project",
"license": "proprietary",
"require": {
"php": "^7.1.3",
"ext-iconv": "*",
"symfony/console": "^4.0",
"symfony/flex": "^1.0",
"symfony/framework-bundle": "^4.0",
"symfony/lts": "^4@dev",
"symfony/maker-bundle": "^1.0",
"symfony/orm-pack": "^1.0",
"symfony/twig-bundle": "^4.0",
"symfony/validator": "^4.0",
"symfony/yaml": "^4.0"
},
"require-dev": {
"symfony/dotenv": "^4.0"
},
"config": {
"preferred-install": {
"*": "dist"
},
"sort-packages": true
},
"autoload": {
"psr-4": {
"App\\": "src/"
}
},
"autoload-dev": {
"psr-4": {
"App\\Tests\\": "tests/"
}
},
"replace": {
"symfony/polyfill-apcu": "*",
"symfony/polyfill-php70": "*",
"symfony/polyfill-php56": "*"
},
"scripts": {
"auto-scripts": {
"cache:clear": "symfony-cmd",
"assets:install --symlink --relative %PUBLIC_DIR%": "symfony-cmd"
},
"post-install-cmd": [
"@auto-scripts"
],
"post-update-cmd": [
"@auto-scripts"
]
},
"conflict": {
"symfony/symfony": "*"
},
"extra": {
"symfony": {
"id": "01C1AMZG7RRHZQ87EJYRTRWDDA",
"allow-contrib": false
}
}
}
也許缺少對symfony/form
的依賴? 快速瀏覽一下您列出的軟件包及其依賴性,讓我懷疑這...
您是否運行過composer req form
? 現在,Symfony4作為最小包裝提供。 以前版本中內置的所有內容,現在必須通過composer安裝。 您可以通過兩種方式執行此操作。 首先,與使用/ package或使用別名之前一樣。 您可以在symfony.sh上找到完整的別名列表。
因此,如果您沒有安裝表單,則可以使用
composer req form
要么
composer req symfony/form
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.