Я пытаюсь выполнить запрос в Symfony 3, чтобы выбрать «Комментарии к желанию» (объект Wishcom) с включённым contribType (объект ContributionType) благодаря JOIN.
При запуске веб-страницы я получаю:
Ошибка: Метод Doctrine \ ORM \ Query \ Expr \ Func :: __ toString () не должен вызывать> исключение, перехвачено Symfony \ Component \ Debug \ Exception \ ContextErrorException:> Catchable Fatal Error: объект класса DateTime не может быть преобразован в> строку
На форумах я понял, что дату и время нужно конвертировать в формат. Дело в том, что я не манипулирую датой напрямую с помощью своего запроса, хотя знаю, что в моем объекте Wishcom есть один атрибут DateTime.
Стоит ли специально выбирать дату и форматировать ее? В таком случае это должно быть сделано? Или ошибка происходит от чего-то еще?
Кажется, ошибка происходит из-за оператора where и функции ToString из Expr, которая не может преобразовать дату. Я не знаю, что мне делать.
$queryBuilder->where($queryBuilder->expr()->in('w.wish', $wish));
Вот мой звонок в контроллере:
$arraywishcom=$em->getRepository(Wishcom::class)->getWishcomWithContributionType($wish);
И мой репозиторий:
<?php
namespace Shaker\JRQBundle\Repository;
use Shaker\JRQBundle\Entity\Wish;
/**
* WishcomRepository
*
* This class was generated by the Doctrine ORM. Add your own custom
* repository methods below.
*/
class WishcomRepository extends \Doctrine\ORM\EntityRepository
{
public function getWishcomWithContributionType(Wish $wish) {
$queryBuilder = $this
->createQueryBuilder('w')
->leftJoin('w.contributiontype', 'contributiontype')
->addSelect('contributiontype')
;
$queryBuilder->where($queryBuilder->expr()->in('w.wish', $wish));
return $queryBuilder
->getQuery()
->getResult()
;
}
}