如何通过doctrine查询symfony2中的模式中的表?

时间:2014-05-11 05:43:37

标签: postgresql symfony doctrine-orm

我的数据库是postgreSQL。我已将参数设置如下:

parameters:
    database_driver: pdo_pgsql
    database_host: 127.0.0.1
    database_port: null
    database_name: sandbox
    database_user: postgres
    database_password: postgres
    mailer_transport: smtp
    mailer_host: 127.0.0.1
    mailer_user: null
    mailer_password: null
    locale: en
    secret: ThisTokenIsNotSoSecretChangeIt

问题是我不知道如何查询PostgreSQL中的现有表格。我对MySQL没有问题,但在PostgreSQL我实际上并不知道该怎么做。

编辑:

# app/config/parameters.yml
parameters:
database_driver: pdo_mysql
database_host: localhost
database_name: test_project
database_user: root
database_password: password

然后我创建实体来处理我的数据。

EDIT2:

  
     

已经在postgreSQL中创建了表。连接部分完成。我成功完成了它。我现在要做的是基于现有表创建实体。我认为现在情​​况要清楚得多,没有人处于黑暗的一面。 ; - )

2 个答案:

答案 0 :(得分:1)

Postgresql和MySQL的设置非常相似。您需要在Symfony2 php文件之外进行更改才能使用Postgresql和PHP。在php.ini文件中,确保为pgsql启用扩展。这需要启用,以便您可以使用database_driver pdo_pgsql

Php.ini文件/etc/php5/apache2/php.ini,添加:

 extension=pdo.so
 extension=php_pdo_pgsql.so

在此之后,测试您是否可以连接到现有数据库或创建新数据库。根据您的具体情况使用架构创建或验证,并发布您收到的任何错误。

答案 1 :(得分:1)

我使用postgres编写了几个symfony应用程序,尽管有doctrine dbal而不是orm。我的parameters.yml通常是这样的:

database_driver: pdo_pgsql
database_host: localhost
database_port: 5432
database_name: my_db_name
database_user: my_user
database_password: my_password

由于您说您可以连接到数据库,因此请为表创建实体 例如:

<?php
/*
 *@Entity
 *@Table(name="my_schema_name.my_table_name")
 */
class Message
{
   /** @Column(type="integer") */
   private $id;
   /** @Column(length=140) */
   private $text;
   /** @Column(type="datetime", name="posted_at") */
   private $postedAt;
}

注意表名上的注释。指定架构和表。 之后,尝试使用dql查询该表中的所有记录。