Symfony2 и встроенный контроллер

У меня проблема со службой форм … В моем нижнем колонтитуле (в макете) есть форма, но она не работает, и я не знаю почему. Делаете ли вы, как я могу вызвать метод «createForm», потому что ошибка, возвращаемая Symfony2.5:

Попытка вызвать метод «createForm» в классе
«Dim \ WebsiteBundle \ Service \ QuickContact» в
… / Symfony / SRC / Dim / WebsiteBundle / Услуги / QuickContact.php
строка 47

Мой сервис (пространство имен Dim \ WebsiteBundle \ Service):

class QuickContact
{

private $request;
private $formFactory;

public function setRequest(RequestStack $request_stack)
{
return $this->request = $request_stack->getCurrentRequest();
}

public function setFormFactory($formFactory)
{
return $this->formFactory = $formFactory;
}

public function indexAction()
{
$Contact = new Contact();

# Create the form with the contact entity constraints
$form = $this->formFactory->create(new ContactType(), $Contact);

if($this->request->isMethod('POST'))
{
$form->bind($this->request);

if($form->isValid())
{
echo 'formulaire valide';
}
}

$this->request->getSession()->set('form', $form);
}

}

Мой сервис.

services:
dim_website.quickcontact:
class: Dim\WebsiteBundle\Service\QuickContact
calls:
- [setRequest, [@request_stack], setFormFactory, [@form.factory]]

В моем макете я вызываю метод index:

{{ quickcontact.indexAction() }}

К вашему сведению, мой ContactType и его сущность работают нормально.

Спасибо вам всем за вашу помощь.
С наилучшими пожеланиями,

0

Решение

Я не уверен, почему вы делаете вещи, как вы, но чтобы ответить на ваш вопрос: вы вызываете метод createForm на ваше QuickContact класс, который, очевидно, не имеет createForm метод определен.

Вы должны звонить $this->formFactory->create(new ContactType(), $Contact) вместо этого в вашем случае.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]