【发布时间】:2018-08-17 12:15:20
【问题描述】:
抱歉,我是 Symfony 的初学者,我试图找到答案,但没有任何效果。我正在使用几个月前从 Symfony 2.8 更新的 Symfony3.4。
现在,我正在尝试做一件相当简单的事情:在控制器中使用 formType,但无论如何,Symfony 一直显示以下错误:无法加载类型“Cha\GeneralBundle\Form\StripePaymentType ": 类不存在。
这是我的 StripePaymentType - 非常非常基础:
namespace Cha\GeneralBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormBuilderInterface;
class StripePaymentType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('name', TextType::class);
}
public function getBlockPrefix()
{
return 'cha_stripe_payment_form';
}
}
这是我的控制器操作,再一次,一个基本的东西(我什至没有在里面写任何代码,因为这个奇怪的错误):
public function upgradeOfferPaymentAction(Offers $offers)
{
$form = $this->createForm(StripePaymentType::class);
return $this->render(
'@ChaGeneral/Offers/offer_payment.html.twig', array(
'form' => $form->createView()
));
}
我尝试将我的表单用作服务,但它也不起作用:
cha.stripe.payment.form:
class: Cha\GeneralBundle\Form\StripePaymentType
tags:
- { name: cha_stripe_payment_form }
我可能遗漏了一些东西,但我不知道是什么......
提前感谢您的帮助!
【问题讨论】:
-
请在您的控制器中显示您的“使用”声明。
-
糟糕,抱歉,我应该在之前发布过:使用 Cha\GeneralBundle\Form\StripePaymentType;
-
我看不出有什么问题。我会要求您发布表单类的路径,但如果文件路径与类名不匹配,Symfony 会抛出错误。
-
如果我使用 $form = $this->createForm('Cha\GeneralBundle\Form\StripePaymentType'); 确实会抛出相同的错误.
-
尝试更改表单的类名。 Symfony 应该抛出一个错误,指出类和文件名不匹配。如果不是这样,这可能意味着 Symfony 根本没有解析文件。