Здравствуй,
У меня есть поддельная модель (сущность без какой-либо связанной с ней таблицы), которая используется для проверки формы контакта. Я хочу получить электронное письмо из другой таблицы. Я создал DataTranformer и связал его с полем электронной почты моей модели.
Теперь, когда я пытаюсь представить форму, она дает мне эту ошибку:
An exception occurred while executing 'SELECT t0.firstName AS firstName1, t0.lastName AS lastName2, t0.email AS email3, FROM Contact t0 WHERE t0.email = ? LIMIT 1' with params [{}]:\n\nObject of class App\\ApiBundle\\Model\\EmailCo could not be converted to string"
Как это решить.
Вот мой модельный класс:
namespace App\ApiBundle\Model;
use Symfony\Component\Validator\Constraints as Assert;
use Symfony\Component\Validator\ExecutionContext;
use Doctrine\ORM\Mapping as ORM;
class EmailCo
{
/**
* @var string Email Id
* @Assert\NotBlank()
* @Assert\Email()
*/
protected $email;
/**
* @var string Mail Subject
* @Assert\NotBlank()
* @Assert\Length(
* min = 3,
* max = 200,
* minMessage = "Subject must be at least {{ limit }} characters long",
* maxMessage = "Subject cannot be longer than {{ limit }} characters long"
* )
*/
protected $subject;
/**
* @var string The note message
* @Assert\NotBlank()
* @Assert\Length(
* min = 3,
* max = 200,
* minMessage = "Subject must be at least {{ limit }} characters long",
* maxMessage = "Subject cannot be longer than {{ limit }} characters long"
* )
*/
protected $message;
/**
* @var bool Send a copy to user or not
* @Assert\NotBlank()
*/
protected $sendCopyToMe;
public function setEmail($email)
{
$this->email = $email;
}
public function getEmail()
{
return $this->email;
}
public function setSubject($subject)
{
$this->subject = $subject;
}
public function getSubject()
{
return $this->subject;
}
public function setMessage($message)
{
$this->message = $message;
}
public function getMessage()
{
return $this->message;
}
public function setSendCopyToMe($sendCopyToMe)
{
$this->sendCopyToMe = $sendCopyToMe;
}
public function getSendCopyToMe()
{
return $this->sendCopyToMe;
}
}
В сообщении об ошибке говорится, что объект не может быть преобразован в строку. Обычно это делается с помощью функции __toString
которую вы можете добавить в свой класс EmailCo
:
public function __toString()
{
return '...';
}
Для получения дополнительной информации смотрите здесь