Написание DQL вручную

Я пытаюсь эту часть в Доктрина Документация где вы можете:


Написание DQL вручную

Для вас, любителей SQL, мы не забыли о вас. При желании вы можете написать свои запросы DQL вручную и проанализировать их в экземпляре Doctrine_Query или просто выполнить их.

$dql = "FROM User u, u.Phonenumbers p";
$q = Doctrine_Query::create()->parseQuery($dql);

Или вы можете просто выполнить их, используя метод query () из Doctrine_Query.

$dql = "FROM User u, u.Phonenumbers p";
$q = Doctrine_Query::create()->query($dql);

Тем не менее у меня возникли трудности, так как я столкнулся со следующей ошибкой:

Попытка загрузить класс «Doctrine_Query» из пространства имен «AppBundle \ Controller».
Вы забыли оператор use для другого пространства имен?

Не могли бы вы помочь мне с этим?

<?php

namespace AppBundle\Controller;

use Symfony\Component\HttpFoundation\Response;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use AppBundle\Entity\TblProduct;

class DefaultController extends Controller
{
/**
* @Route("/", name="homepage")
*/
public function indexAction()
{
$products = "SELECT * FROM TblProduct";
$q = Doctrine_Query::create()->query($products);

if (!$products) {
throw $this->createNotFoundException(
'No products registered yet.'
);
}
return $this->render('default/index.html.twig', array('products' => $products));
}

4

Решение

Это часть Доктрина 1.2 и не Учение 2.5. В последней версии вы будете просто создавать запросы в Doctrine Query Language с createQuery(),

<?php
$dql = "FROM User u, u.Phonenumbers p";
$query = $em->createQuery($dql);
$users = $query->getResult();

В качестве альтернативы вы можете написать Родной SQL.

1

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

Других решений пока нет …

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