Когда я пытаюсь создать форму и передать Entity методу createForm в symfony4, возникает исключение, как показано ниже. An exception has been thrown during the rendering of a template ("Catchable Fatal Error: Object of class App\Entity\Email could not be converted to string").
ниже мой код, пока
Код контроллера
/**
* @Route("/email/new", name="new_email")
* Method({"GET","POST"})
*/
public function new(Request $request)
{
$email = new Email();
// $email->setEmailAddress('fgesg');
// $email->setDeleted('0');
$form = $this->createForm(EmailType::class, $email);
return $this->render('main/new_email.html.twig',array(
'form' => $form->createView()
));
}
Email.php - Entity
<?php
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity(repositoryClass="App\Repository\EmailRepository")
*/
class Email
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="text", nullable=true)
*/
private $emailAddress;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private $deleted;
//all getters and setters here
}
EmailType.php
<?php
namespace App\Form;
use App\Entity\Email;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
class EmailType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('emailAddress')
->add('deleted')
;
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'data_class' => Email::class
]);
}
}
Если объект не передан, он создает форму, но с одним дополнительным текстовым полем электронной почты. В любом случае я хочу показать существующие данные электронной почты, поэтому мне нужно вставить объект электронной почты.
Пожалуйста, помогите мне в этом.
---- Редактировать --------
ниже шаблон new_email.html.twig
{% extends 'base.html.twig' %}
{% block body %}
{{ form_row(form.emailAddress) }}
{{ form_row(form.deleted) }}
{{ form_row(form.save) }}
{% endblock %}
{% block javascripts %}
<script type="text/javascript">
$(function() {
alert( "ready!" );
});
</script>
{% endblock %}