update similar posts

This commit is contained in:
Simon Vieille 2022-09-10 11:45:58 +02:00
parent b76dd41d90
commit 420b3c9d73
Signed by: deblan
GPG key ID: 579388D585F70417

View file

@ -22,29 +22,41 @@ class PostRepository extends ServiceEntityRepository
{
$query1 = $this->createQueryBuilder('p');
$query2 = $this->createQueryBuilder('p');
$categories = $post->getCategories()->getValues();
$tags = $post->getTags();
$query1->orderBy('p.publishedAt', 'DESC');
foreach ($post->getTags() as $k => $entity) {
$query1
->orWhere('p.tags LIKE :tag'.$k)
->setParameter(':tag'.$k, '%"'.$entity['label'].'"%')
;
if (count($tags)) {
foreach ($tags as $k => $entity) {
$query1
->orWhere('p.tags LIKE :tag'.$k)
->setParameter(':tag'.$k, '%"'.$entity['label'].'"%')
;
}
$search1 = $query1->getQuery()->getResult();
} else {
$search1 = [];
}
$query2
->orderBy('p.publishedAt', 'DESC')
->andWhere('p.status = 1')
->join('p.categories', 'c')
->where('c.id IN (:ids)')
->setParameter(':ids', array_map(
fn ($e) => $e->getId(),
$post->getCategories()->getValues()
))
;
if (count($categories)) {
$query2
->orderBy('p.publishedAt', 'DESC')
->andWhere('p.status = 1')
->join('p.categories', 'c')
->where('c.id IN (:ids)')
->setParameter(':ids', array_map(
fn ($e) => $e->getId(),
$categories
))
;
$search2 = $query2->getQuery()->getResult();
} else {
$search2 = [];
}
$search1 = $query1->getQuery()->getResult();
$search2 = $query2->getQuery()->getResult();
$now = new \DateTime();
$posts = [];