I am creating a simple contact form. My custom type starts this way:
<?php
namespace MyCompany\AppBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
use Symfony\Component\Form\Extension\Core\Type\EmailType;
use Symfony\Component\Validator\Constraints\Email;
use Symfony\Component\Validator\Constraints\NotBlank;
class ContactType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
... and my controller starts this way:
<?php
namespace MyCompany\AppBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
class ContactController extends Controller
{
public function contactAction(Request $request)
{
// Create the form according to the FormType created previously.
// And give the proper parameters
$form = $this->createForm('MyCompany\AppBundle\Form\ContactType',null,array(
// To set the action use $this->generateUrl('route_identifier')
'action' => $this->generateUrl('myapplication_contact'),
'method' => 'POST'
));
... but I find that my application is unable to load the type. I get the following exception message:
Could not load type "MyCompany\\AppBundle\\Form\\ContactType" 500 Internal Server Error - InvalidArgumentException
What can I do to start debugging this?
Since you are using Symfony 2.7 the proper way to create a form in the controller using a form type class is:
<?php
namespace MyCompany\AppBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use MyCompany\AppBundle\Form\ContactType; // add this
class ContactController extends Controller
{
public function contactAction(Request $request)
{
// Create the form according to the FormType created previously.
// And give the proper parameters
$form = $this->createForm(new ContactType(), null, array(
// To set the action use $this->generateUrl('route_identifier')
'action' => $this->generateUrl('myapplication_contact'),
'method' => 'POST'
));
Refer to the symfony documentation
在Symfony 2.7中,您将必须在$this->createForm
发送这样的实例
new MyCompany\AppBundle\Form\ContactType
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.