簡體   English   中英

Symfony 4-找不到類Symfony \\ Component \\ Form \\ AbstractType

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM