Исправляемая фатальная ошибка: не удалось преобразовать EntityManager в строку

Я хотел реализовать некоторые службы, и первым делом я определил закрытый $ em как EntityManager следующим образом:

<?php

namespace Users\UsersBundle\Services;

use Doctrine\ORM\EntityManager;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
use Usuarios\UsersBundle\Entity\User;

/**
* Class UserManager
*/
class UserManager
{
private $em;

/**
* @param EntityManager $em
*/
public function __construct(EntityManager $em)
{
$this->$em = $em;
}
}

Пример функции, использующей EntityManager внутри того же класса:

/**
* Find all posts for a given author
*
* @param User $author
*
* @return array
*/
public function findPosts(User $author)
{
$posts = $this->$em->getRepository('BlogBundle:Post')->findBy(array(
'author' => $author
)
);

return $posts;
}

Однако, когда я вызываю любую функцию, подобную, например, той, которую я показываю выше, я получаю следующую ошибку: Catchable Fatal Error: Объект класса Doctrine \ ORM \ EntityManager не может быть преобразован в строку.

Я импортировал сервис. Что мне не хватает? Спасибо заранее за вашу поддержку.

1

Решение

Вместо этого:

$posts = $this->$em->getRepository('BlogBundle:Post')->findBy(array(
'author' => $author

попробуй это:

$posts = $this->em->getRepository('BlogBundle:Post')->findBy(array(
'author' => $author

Обратите внимание, что я изменил с $ this -> $ em на $ this-> em.

1

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

$this->$em

Должно быть:

$this->em

$ this -> $ em пытается преобразовать $ em в строку, когда это объект. Если объект не имеет __нанизывать() Определенный метод, вы получите исключение.

2

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