使用doctrine 1.2创建查询,其中表名需要来自数据库

时间:2013-06-20 07:18:07

标签: php database symfony-1.4 doctrine-1.2

是否有可能使用doctrine(symfony 1.4)创建查询,其中我在from子句中从数据库(而不是schema.yml中的模型类)定义了表名?

例如:

schema.yml中的

我有模型类

StaticPage:
connection: doctrine
tableName: static_page
columns:
...

我的查询如下:

$item = Doctrine_Query::create();
$item->query("SELECT * FROM StaticPage WHERE id = ".$id);
$change = $item->fetchOne();
$change->setPublished(true);
$change->save();

在这个查询而不是StatigPage我需要static_page(tableName)...

...谢谢

2 个答案:

答案 0 :(得分:1)

Fracsi解决方案的其他方式:

$item = Doctrine::getTable("StaticPage")->findOneById($id);
    if($item instanceof StaticPage) {
        $item->setPublished(true);
        $item->save();
    }

始终使用您的型号/ ORM。在很少情况下,Doctrine无法构建正确的查询语法,您必须自己编写sql。

答案 1 :(得分:1)

广义版本:(通过参数传递模型名称(例如$sf_request

$item = Doctrine::getTable($model_name)->findOneById($id);
$item->setPublished(true);
$item->save();