2011-12-27 32 views
2

教义我可以这样做:等效findBy和fetchOne从学说中行走

$article = Doctrine::getTable('Article')->createQuery('a')->where('a.user_id = ?', $this->getUser()->getAttribute('id'))->fetchOne() 

$article = Doctrine::getTable('Article')->findBy('user_id', $this->getUser()->getAttribute('id')); 

我怎样才能使它在行走? 我使用Symfony 1

回答

1

推进非常简单。我给你一个推动1.4的答案。这些看起来像相同的查询。

$article = Doctrine::getTable('Article')->createQuery('a')->where('a.user_id = ?',  $this->getUser()->getAttribute('id'))->fetchOne() 

$c = new Criteria; 
$c->add(ArticlePeer::USER_ID, $this->getUser()->getId()); 
$article = ArticlePeer::doSelectOne($c); 
2

或行走1.6

ArticleQuery::create() 
    ->filterByUserId($this->getUser()->getId()) 
    ->findOne(); 
//returns Article instance or null 

甚至

ArticleQuery::create() 
    ->filterByUserId($this->getUser()->getId()) 
    ->findOneOrCreate(); 
//always returns article instance, if created user id will be already initialized