Symfony2-在侧栏中设置标记云
我想重新创建一个标签云边栏,你通常会在博客中看到,用户在标签上进行选择,它会显示所有带有特定标签的帖子 现在我很难确定如何设置查询 我可以查询所有标签:Symfony2-在侧栏中设置标记云,symfony,tags,doctrine,posts,Symfony,Tags,Doctrine,Posts,我想重新创建一个标签云边栏,你通常会在博客中看到,用户在标签上进行选择,它会显示所有带有特定标签的帖子 现在我很难确定如何设置查询 我可以查询所有标签: $blogTags = $this->createQueryBuilder('b') ->select('b.tags') ->getQuery() ->getResult(); return $blogTags; 但是,我如何设置它,使其仅通过用户从侧边栏中的
$blogTags = $this->createQueryBuilder('b')
->select('b.tags')
->getQuery()
->getResult();
return $blogTags;
但是,我如何设置它,使其仅通过用户从侧边栏中的一组标记中选择的标记调出帖子
我有代码来存储标签并在侧边栏中对它们进行加权,我正在寻找下一步将标签链接到它们的特定帖子
格斯塔格斯
格塔格威茨
和你朋友的答案一样 您应该使用条令查询 PostRepository.php
希望这能帮助其他人在这方面花费越来越多的时间
public function getPostsByTags($tag)
{
$query = $this->createQueryBuilder('b')
->where('b.tags like :tag')
->setParameter('tag', '%'.$tag.'%');
return $query->getQuery()->getResult();
}
在tags表中存储一个计数器,然后您可以使用counterRight显示标签的流行程度。我有这个计数器,但我正在寻找下一步,在标签上选择,它会显示相应的帖子。
public function getTagWeights($tags)
{
$tagWeights = array();
if (empty($tags))
return $tagWeights;
foreach ($tags as $tag)
{
$tagWeights[$tag] = (isset($tagWeights[$tag])) ? $tagWeights[$tag] + 1 : 1;
}
// Shuffle the tags
uksort($tagWeights, function() {
return rand() > rand();
});
$max = max($tagWeights);
// Max of 5 weights
$multiplier = ($max > 5) ? 5 / $max : 1;
foreach ($tagWeights as &$tag)
{
$tag = ceil($tag * $multiplier);
}
return $tagWeights;
}
public function findByTagName($tagName)
{
$qb = $this->createQueryBuilder('post');
$qb->select('post')
->join('post.tags', 'tag')
->where('tag.name LIKE ?', '%'.$tagName.'%');
return $qb->getQuery()->getResult();
}
public function getPostsByTags($tag)
{
$query = $this->createQueryBuilder('b')
->where('b.tags like :tag')
->setParameter('tag', '%'.$tag.'%');
return $query->getQuery()->getResult();
}