私は2つの異なるテーブルの情報を結合する必要があり、ロジックに問題があります。ここでデータベースからのトレンド投稿を取得する - symfony query builder - MySQL
は私のテーブルです、私は私がどの記事を取得しようとしている無関係な情報
ポスト(groupIdを、dateCreated)
postbump(userIdを、postId)
の一部を除外しています「トレンド」です。言い換えれば、私は与えられたグループで
をしている投稿を取得する必要があり、
($日付によって提供される)、指定した日付の後
($グループアレイによって提供)彼らは
これは私が唯一の新しいポストを得るが、それは何の理解を提供するのに役立つ可能性があるのオフに構築しています私の機能であるを持っているバンプの量によって順序
私は後です。私が持っているコードの現在のリポジトリはpostリポジトリです(symfonyクエリービルダーに精通していない人にとっては、基本的に自動的にpostテーブルから選択することを意味します)。これは私がこれまで持っているものである
はpublic function getNewHomeFeedPosts($groups){
$qb = $this->repository->createQueryBuilder('x');
$qb->select('x');
$qb->where('x.groupId IN (:groups)');
$qb->setParameter('groups',$groups);
$qb->orderBy('x.dateCreated','DESC');
return $qb->getQuery()->getResult();
}
、私の本当の問題は、各ポストがあり、バンプの量によって順序です。私はある時点で結合を利用しなければならないと考えています。
public function getTrendingHomeFeedPosts($groups, $date){
$qb= $this->repository->createQueryBuilder('x');
$qb->select('x');
$qb->where('x.groupId IN (:groups) AND x.dateCreated < :dateCreated');
$qb->setParameter('groups',$groups);
$qb->setParameter('dateCreated', $date);
//todo
return $qb->getQuery()->getResult();
}
querybuilderの構文に精通していない場合は、SQLでの回答が問題ありません。
'in'演算子のバインディングは正しくないようです。 – Shadow
綴りはどういう意味ですか?最初のコードは説明どおりに動作するので、私はあなたが何の問題に言及しているのか分かりません。 –