Symfony 2中的Mysql视图表

时间:2015-07-21 15:09:26

标签: symfony

我的数据库中有视图表,如何从这些视图中检索数据?

我尝试使用

$em = $this->getDoctrine()->getEntityManager();
$query = $em->createQuery('SELECT * FROM my_views');
$result = $query->getResult();

但它不起作用。

1 个答案:

答案 0 :(得分:3)

如果要执行简单的SQL查询,可以这样做:

$con = $this->getDoctrine()->getEntityManager()->getConnection();
$stmt = $con->executeQuery('SELECT * FROM my_views');
foreach ($stmt->fetchAll() as $row){
   print_r($row);
}

使用$em->createQuery()时,您需要使用Doctrine实体。

如果要在视图中使用映射,juste将创建一个实体:

namespace Your\Bundle\Entity;

/**
 * @ORM\Entity
 * @ORM\Table(name="my_view")
 */
class MyView
{
    /**
     * @ORM\Column(type="integer")
     * @ORM\Id
     */
    protected $id;

    /**
     * @ORM\Column(type="string")
     */
    protected $someVarcharColumn;

    public function getId()
    {
        return $this->id;
    }

    public function getSomeVarcharColumn()
    {
        return $this->someVarcharColumn;
    }
}

您可以使用DQL查询它:

$results = $em->createQuery('
   SELECT v
   FROM YourBundle:MyView v
')->getResult();