0

from句でデータベースからテーブル名を定義した(schema.ymlのモデルクラスではない)Doctrine(symfony 1.4)でクエリを作成する可能性はありますか?

例えば:

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) が必要です...

ありがとう...

4

2 に答える 2

1

Fracsi のソリューションの他の方法:

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

常にモデル/ORM を使用してください。Doctrine が正しいクエリ構文を構築できず、自分で sql を書かなければならないケースはほとんどありません。

于 2013-06-20T07:29:37.517 に答える
1

一般化されたバージョン: (パラメーターを介してモデル名を渡します (例: $sf_request)

$item = Doctrine::getTable($model_name)->findOneById($id);
$item->setPublished(true);
$item->save();
于 2013-06-20T07:35:21.440 に答える