gpt4 book ai didi

forms - 无法在第 91 行的 vendor/symfony/symfony/src/Symfony/Component/Form/FormRegistry.php 中加载类型 "text"

转载 作者:行者123 更新时间:2023-12-04 00:19:07 25 4
gpt4 key购买 nike

我正在使用 Symfony 标准版 ,一切都在 的版本中工作Symfony2.X 直到我将其更新为 3.0.x-dev .

即使在较新的版本中,除了在 Controller 中给我一个错误的页面外,一切正常:

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

  1. in vendor/symfony/symfony/src/Symfony/Component/Form/FormRegistry.php at line 91
  2. at FormRegistry ->getType ('text') in vendor/symfony/symfony/src/Symfony/Component/Form/FormFactory.php at line 84
  3. at FormFactory ->createNamedBuilder ('flag', 'text', null, array()) in vendor/symfony/symfony/src/Symfony/Component/Form/FormBuilder.php at line 106
  4. at FormBuilder ->create ('flag', 'text', array()) in vendor/symfony/symfony/src/Symfony/Component/Form/FormBuilder.php at line 267
  5. at FormBuilder ->resolveChildren () in vendor/symfony/symfony/src/Symfony/Component/Form/FormBuilder.php at line 215
  6. at FormBuilder ->getForm () in src/MyProject/FrontOfficeBundle/Controller/ChallengeController.php at line 418


在 Controller 中,我使用了以下代码:
$form = $this->createFormBuilder()
->add("flag","text")
->add("validate","button")
->getForm();

即使我删除了第一个 add("flag","text"),错误也会切换到:

Could not load type "button"



所以我认为问题出在方法 getForm() .我认为该方法 createFormBuilder()需要一个参数,所以我试图传递一个对象标志,它有很多参数(标志,验证,...)。

问题没有改变,就像这个版本中的语法改变了一样,但是当我验证 documentation 时,我没有发现我的语法有任何问题。

表格的版本是 3.0-dev .我在 github 项目中验证了它,这些文件是最新的。我用过
composer update

我删除了缓存和日志文件,但问题存在。

感谢您的帮助,并为我的英语不好而感到抱歉。

最佳答案

@CarlosGranados 的意思 read the UPGRADE-3.0.md是阅读告诉您如何将代码从 2.x 更改为 3.0 而不是如何升级 symfony 代码库的文件。不幸的是,它没有提到如何处理这个表单问题。

您将面临的问题包含在 [UPGRADE-2.8.md](https://github.com/symfony/symfony/blob/2.8/UPGRADE-2.8.md) 中。并且是由于表单名称 text/button被弃用,取而代之的是完全限定的类名 (FQCN)。

来自 UPGRADE-2.8.md

类型名称已被弃用,并将在 Symfony 3.0 中删除。您应该通过完全限定的类名 (FQCN) 来引用它们,而不是通过名称来引用类型。在 PHP 5.5 或更高版本中,您可以为此使用“类”常量:

之前:

$form = $this->createFormBuilder()
->add('name', 'text')
->add('age', 'integer')
->getForm();

之后:
use Symfony\Component\Form\Extension\Core\Type\IntegerType;
use Symfony\Component\Form\Extension\Core\Type\TextType;

$form = $this->createFormBuilder()
->add('name', TextType::class)
// or ->add('name', Symfony\Component\Form\Extension\Core\Type\TextType)
->add('age', IntegerType::class)
// or ->add('age', Symfony\Component\Form\Extension\Core\Type\IntegerType)
->getForm();

......它继续告诉你更多......

关于forms - 无法在第 91 行的 vendor/symfony/symfony/src/Symfony/Component/Form/FormRegistry.php 中加载类型 "text",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33160763/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com