Модель и DataTransformer не работают в Symfony2

0

Здравствуй,

У меня есть поддельная модель (сущность без какой-либо связанной с ней таблицы), которая используется для проверки формы контакта. Я хочу получить электронное письмо из другой таблицы. Я создал 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;
    }

}
Теги:
doctrine

1 ответ

0
Лучший ответ

В сообщении об ошибке говорится, что объект не может быть преобразован в строку. Обычно это делается с помощью функции __toString которую вы можете добавить в свой класс EmailCo:

public function __toString()
{
    return '...';
}

Для получения дополнительной информации смотрите здесь

  • 0
    Я добавил это: public function __toString () {return $ this-> getEmail (); } но до сих пор остается загадкой, почему я должен это делать, если я привязываю свой DataTransfomrer к моей сущности.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню