1
我有两个实体邮政和标签这个实体有关系ManyToMany,许多职位有很多标签和许多标签有很多职位,并有实体类别我很多职位的一个类别,我需要创建行动查找职位类别和发现后的标签如何查找实体ManyToMany
class Tag
{
/**
* @ORM\Column(type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\Column(type="string", length=100)
*/
protected $hashTag;
/**
* @Gedmo\Slug(fields={"hashTag"})
* @ORM\Column(type="string", length=12)
*/
protected $hashSlug;
/**
* @ORM\ManyToMany(targetEntity="Post", inversedBy="tag")
* @ORM\JoinColumn(name="post_id", referencedColumnName="id")
*/
protected $post;
类别:
class Category
{
/**
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue
*/
private $id;
/**
* @ORM\Column(name="title", type="string", length=64)
*/
private $title;
/**
* @ORM\OneToMany(targetEntity="Post", mappedBy="category")
*/
protected $posts;
后
class Post
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\Column(type="string", nullable=true)
*/
private $title;
/**
* @ORM\ManyToMany(targetEntity="Tag", mappedBy="post")
* @ORM\JoinTable(name="posts_tag")
*/
protected $tag;
和我的模板我张贴在我的行动领域包括hashtag:
<p class="lead">
Category:<a href="{{ path('get_posts_for_category', {'category': post.category.title}) }}">{{ post.category }}</a>
</p>
{% for tags in post.tag %}
<a class="btn btn-primary" href="{{ path('get_posts_for_tags', {'tags': tags }) }}">{{ tags }} <span class="glyphicon glyphicon-chevron-right"></span></a>
{% endfor %}
public function indexAction(Request $request, $tag)
{
$em = $this->getDoctrine()->getManager();
$posts = $em->getRepository('PillsBundle:Post')
->getPostByTag($tags);
这到底是功能:
public function getPostByTag($tag)
{
$date = new \DateTime;
$qb = $this->getEntityManager()->createQueryBuilder('p');
$qb
->select('p')
->from('PillsBundle:Post', 'p')
->getQuery();
$query = $qb->getQuery();
$results = $query->getResult();
// dump($results);exit; => I have all posts
// And I dont know what to do next, help
}
和第一类:
public function indexAction(Request $request, $category)
{
$em = $this->getDoctrine()->getManager();
$posts = $em->getRepository('PillsBundle:Post')
->getPostByCategory($category);
public function getPostByCategory($category)
{
$date = new \DateTime;
$qb = $this->getEntityManager()->createQueryBuilder('p');
$qb ->select('p')
->from('PillsBundle:Post', 'p')
->join('p.category', 'c')
->where('c = :category')
->setParameter('category', $category)
->getQuery();
$query = $qb->getQuery();
$results = $query->getResult();
return $results;
}
如果我用这个QueryBuilder的我张贴(现在我张贴categoty.slug)这个功能需要? 帮助请
我更新我的问题 –
更新我的答案:) –
我更新我的问题。 $标记它不是实体CLAS标签,这是场主题标签,并在模板我forin帖子,并在行动hasTag这foring标签和后'{%,为post.tag%标签} {{ tags }} {%ENDFOR%}' –