(有关更好的问题,请参阅下面的编辑)如何在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命令执行时使用的较低级代码中默认选择的连接?