2011-12-27 33 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