加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 创建没有数据库的Symfony 4表单

发布时间:2020-12-13 21:59:10 所属栏目:PHP教程 来源:网络整理
导读:我是symfony的新手,想要创建一个简单的联系表单,获取提交的值并将其作为电子邮件发送.我不想在数据库中保存任何内容. 我按照本页面上的文档:https://symfony.com/doc/current/form/without_class.html 我使用上面的代码创建了一个新页面/操作: /** * @Rout
我是symfony的新手,想要创建一个简单的联系表单,获取提交的值并将其作为电子邮件发送.我不想在数据库中保存任何内容.

我按照本页面上的文档:https://symfony.com/doc/current/form/without_class.html

我使用上面的代码创建了一个新页面/操作:

/**
 * @Route("/contact",name="page_contact")
 */
public function contact(Request $request)
{
    $defaultData = ['message' => 'Type your message here'];
    $form = $this->createFormBuilder($defaultData)
        ->add('name',TextType::class)
        ->add('email',EmailType::class)
        ->add('message',TextareaType::class)
        ->add('send',SubmitType::class)
        ->getForm();

    $form->handleRequest($request);

    if ($form->isSubmitted() && $form->isValid()) {
        // data is an array with "name","email",and "message" keys
        $data = $form->getData();
    }

    return $this->render('Shop/contact.html.twig',[
        'form' => $form
    ]);
}

但这给了我一个错误:

SymfonyComponentFormExceptionInvalidArgumentException:
Could not load type "DoctrineDBALTypesTextType": class does not implement "SymfonyComponentFormFormTypeInterface".

  at vendor/symfony/form/FormRegistry.php:89
  at SymfonyComponentFormFormRegistry->getType('DoctrineDBALTypesTextType')
     (vendor/symfony/form/FormFactory.php:74)
  at SymfonyComponentFormFormFactory->createNamedBuilder('name','DoctrineDBALTypesTextType',null,array())
     (vendor/symfony/form/FormBuilder.php:97)
  at SymfonyComponentFormFormBuilder->create('name',array())
     (vendor/symfony/form/FormBuilder.php:256)
  at SymfonyComponentFormFormBuilder->resolveChildren()
     (vendor/symfony/form/FormBuilder.php:206)
  at SymfonyComponentFormFormBuilder->getForm()
     (src/Controller/ShopController.php:68)
  at AppControllerShopController->contact(object(Request))
     (vendor/symfony/http-kernel/HttpKernel.php:149)
  at SymfonyComponentHttpKernelHttpKernel->handleRaw(object(Request),1)
     (vendor/symfony/http-kernel/HttpKernel.php:66)
  at SymfonyComponentHttpKernelHttpKernel->handle(object(Request),1,true)
     (vendor/symfony/http-kernel/Kernel.php:190)
  at SymfonyComponentHttpKernelKernel->handle(object(Request))
     (public/index.php:37)

我究竟做错了什么?为什么堆栈跟踪中存在所有Doctrine内容?

解决方法

您可能导入了错误的类型.代替:

use DoctrineDBALTypesTextType;

你需要:

use SymfonyComponentFormExtensionCoreTypeTextType;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读