2008年11月27日木曜日

[symfony 1.0.18]はうとぅーゆーずdoSelectRS

久々の更新でテンション上がってきました。
開発しつつちょっと詰まったのでメモメモ。。

仕事で使ってるDBのテーブルがなかなかでかくて、
使いたいカラムは1つか2つなのにdoSelectで全部持ってくるのはナンセンスだ!
ってことでaddSelectColumnを使ってみました。
カラムを指定してオブジェクトを取り出す時は
doSelectRSを使うって決まりがあるらしいけど、
そうすると$user->getName()とかいう風に取り出せない。
なんでかなーと調べるうちに見つけたのがFetchMode
細かい説明はいまいち把握してないのでできないですが、
以下にソースを記述しておきます。
$oCriteria = new Criteria;
$oCriteria->addSelectColumn(UserPeer::NAME);
$oCriteria->add(UserPeer::ID, $this->getRequestParameter('id'), Criteria::EQUAL);
$result = UserPeer::doSelectRS($oCriteria);
$result->setFetchMode(ResultSet::FETCHMODE_ASSOC);
while ($result->next()) {
 $this->user_name = $oResult->getString('NAME');
}


これでテンプレートの方で$user_nameを呼び出すと中身が取り出せました^-^

0 件のコメント: