Эквивалент findBy и fetchOne из Doctrine в Propel - PullRequest
2 голосов
/ 28 декабря 2011

В Doctrine я могу сделать:

   $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'));

Как мне сделать это в Propel?Я использую Symfony 1

Ответы [ 2 ]

2 голосов
/ 31 декабря 2011

или для хода 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
1 голос
/ 28 декабря 2011

Propel довольно прост. Я даю вам ответ 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); 
...