метод getconnection не найден в \ Doctrine \ Common \ Persistence - PullRequest
0 голосов
/ 17 мая 2019

Я слежу за обучением в Symfony 4, где мы хотим создать необработанный запрос. Вот код, приведенный в руководстве:

public function index(Request $request)
{
    $entityManager = $this->getDoctrine()->getManager();

    $conn = $entityManager->getConnection();
    $sql = '
    SELECT * FROM user u
    WHERE u.id > :id
    ';
    $stmt = $conn->prepare($sql);
    $stmt->execute(['id' => 3]);

   //more code 
    }

Но когда я пытаюсь сделать то же самое, метод getconnection, кажется, не распознается моей IDE, и он выдает мне следующее сообщение:

метод getconnection не найден в \ Doctrine \ Common \ Persistence \ ObjectManager

Есть идеи о том, что мне делать? Я буду ценить это.

1 Ответ

0 голосов
/ 17 мая 2019

, поскольку на самом деле это не ошибка, а скорее результат статического анализа, вы можете попытаться утихомирить используемый инструмент статического анализа (точно не знаю, какой именно), вы могли бы сделать это при получении менеджера сущностей:

/** @var \Doctrine\ORM\EntityManagerInterface $entityManager */
$entityManager = $this->getDoctrine()->getManager();

если инструмент статического анализа хорош, он примет комментарий / подсказку и распознает менеджера сущностей, и он, вероятно, перестанет жаловаться.

(вопрос, который я задаю)себя: есть ли причина, по которой вы используете простой SQL вместо ... вы знаете ... менеджера сущностей, например ... $user = $entityManager->find(User::class, 3); ... если ваш пользователь по какой-либо причине не является сущностью)

...