Symfony 2.7: не удалось загрузить тип - PullRequest
0 голосов
/ 25 сентября 2018

Я создаю простую контактную форму.Мой пользовательский тип запускается так:

<?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)
    {

... и мой контроллер запускается так:

<?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'
        ));

... но я обнаружил, что мое приложение не может загрузить тип,Я получаю следующее сообщение об исключении:

Не удалось загрузить тип «MyCompany \ AppBundle \ Form \ ContactType» 500 Внутренняя ошибка сервера - InvalidArgumentException

Что можно сделать для запускаэто отладка?

Ответы [ 2 ]

0 голосов
/ 25 сентября 2018

Поскольку вы используете Symfony 2.7, правильный способ создания формы в контроллере с использованием класса типа формы:

<?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'
        ));

См. документацию Symfony

0 голосов
/ 25 сентября 2018

В Symfony 2.7 вам нужно будет отправить этот экземпляр как $this->createForm

new MyCompany\AppBundle\Form\ContactType
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...