Можно ли добавить предложения WHERE при извлечении отношений? - PullRequest
0 голосов
/ 07 июля 2010

Можно ли в доктрине добавить предложение WHERE при извлечении свойства объекта, соответствующего отношению?

С точки зрения концепции, скажем, я хочу получить только первые 3 сообщения в блогесделано в последние 5 дней.Мой объект "блог" имеет свойство "posts", которое определяется как отношение.

Обновление ...

Поскольку у некоторых людей возникают некоторые трудности с пониманием того, что я имею в виду под отношением:

class Blog extends Doctrine_Record {

       ...

       public function setUp() {

            $this->hasMany("Note as Posts", array(
                "local" => "blog_name",
                "foreign" => "post_id",
                "refClass" => "BlogPost"
            ));

       }
}

Как видите, это явная связь, поддерживаемая доктриной.Когда я делаю запрос, используя его:

     $instanceOfBlog->Posts...........

Я хотел бы знать, могу ли я добавить дополнительные предложения в это время.

1 Ответ

3 голосов
/ 08 июля 2010

Не уверен, что я следую за вами, но если это то, что я думаю, то в вашем BlogTable классе:

public function getRecentPosts()
{
  $qry = self::createQuery("b")
    ->innerJoin("b.Posts p")
    ->where("p.created_at > ?", date("Y-m-d H:i:s", strtotime("-5 days")))
    ->orderBy("p.created_at DESC")
    ->limit(3);

  $results = $qry->execute();
}

Это то, что вы преследовали?Это основано на поле created_at в объекте Posts и предполагает, что между таблицами Blog и Posts определена взаимосвязь.

Однако, возможно, я полностью неправильно понял ваш вопрос: -)

...