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; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |