小编Tom*_*avo的帖子

如何控制从symfony1.4任务中的database.yml中选择哪个连接

(有关更好的问题,请参阅下面的编辑)如何在symfony1.4任务中使用通用Doctrine_Query::create()创建查询来控制选择哪个连接(来自database.yml中的右侧环境部分)?

我正在使用看起来像这样的database.yml:

prod:
  doctrine:
    class: sfDoctrineDatabase
    param:
      dsn: mysql://some:pass@domain:port/database

  log:
    class: sfDoctrineDatabase
    param:
      dsn: mysql://some:pass@domain:port/database
  auth:
    class: sfDoctrineDatabase
    param:
      dsn: mysql://some:pass@domain:port/database

dev:
  doctrine:
    class: sfDoctrineDatabase
    param:
      dsn: mysql://some:otherpass@domain:port/database

  log:
    class: sfDoctrineDatabase
    param:
      dsn: mysql://some:otherpass@domain:port/database

  auth:
    class: sfDoctrineDatabase
    param:
      dsn: mysql://some:otherpass@domain:port/database
Run Code Online (Sandbox Code Playgroud)

我希望能够在调用类似以下内容时控制使用哪个数据库定义:

$query = Doctrine_Query::create()
        ->select('*')
        ->from('Products p')
        ->where('p.id = ?', $productID)
        ->limit(1);

$OfpFlPr = $query->execute()->getFirst();
Run Code Online (Sandbox Code Playgroud)

目前我无法像这样设置连接$query = Doctrine_Query::create($conn);.

任何帮助将不胜感激!


编辑:

我在使用的软件中有很多代码Doctrine_Query::create()(没有连接参数).它似乎通过Web请求选择了正确的环境和连接.但是我无法弄清楚它是如何做到这一点的,所以我可以使我的CLI命令以相同的方式工作(它们目前没有选择正确的连接和环境).这就是为什么我需要知道如何控制"自动"使用哪个连接(默认选中).

题:

所以我想我的结论是:

如何控制Doctrine_Query::create()在代码作为symfony CLI命令执行时使用的较低级代码中默认选择的连接?

php doctrine symfony-1.4 doctrine-1.2

6
推荐指数
1
解决办法
453
查看次数

标签 统计

doctrine ×1

doctrine-1.2 ×1

php ×1

symfony-1.4 ×1