Php Ajax搜索过滤器
我有一个“内容”表,您可以为内容分配类别Php Ajax搜索过滤器,php,jquery,mysql,ajax,symfony,Php,Jquery,Mysql,Ajax,Symfony,我有一个“内容”表,您可以为内容分配类别 class Content { private $name; private $categories; ... ... ... public function __construct() { $this->categories = new \Doctrine\Common\Collections\ArrayCollection(); } public
class Content
{
private $name;
private $categories;
...
...
...
public function __construct()
{
$this->categories = new \Doctrine\Common\Collections\ArrayCollection();
}
public function addCategories(\Publicartel\AppBundle\Entity\Category $categories)
{
$this->categories[] = $categories;
return $this;
}
public function removeCategories(\Publicartel\AppBundle\Entity\Category $categories)
{
$this->categories->removeElement($categories);
}
public function setCategories(\Publicartel\AppBundle\Entity\Category $categories = null)
{
$this->categories = $categories;
return $this;
}
public function getCategories()
{
return $this->categories;
}
}
然后我进行查询以查找所有类别并将它们显示在页面上
$categories = $em->getRepository('PublicartelAppBundle:Category')->getAllCategories();
public function getAllCategories()
{
$em = $this->getEntityManager();
$dql = 'SELECT c FROM Publicartel\AppBundle\Entity\Category c';
$query = $this->getEntityManager()
->createQuery($dql)
->setHydrationMode(\Doctrine\ORM\Query::HYDRATE_ARRAY);
return $query->execute();
}
显示模板细枝中的所有类别
<div class="form-group">
<label for="publicartel_appbundle_category_name">Buscar por categoría:</label>
<select id='selectCategory' class="form-control select2">
{% for categories in categories %}
<option>
{{ categories.name }}
</option>
{% endfor %}
</select>
</div>
显示所选类别内容的查询:
public function findByCategory($category)
{
$em = $this->getEntityManager();
$dql = 'SELECT c FROM Publicartel\AppBundle\Entity\Content c';
if (!is_null($category)) {
$dql .= " WHERE c.categories.name LIKE :category";
}
$query = $this->getEntityManager()
->createQuery($dql)
->setHydrationMode(\Doctrine\ORM\Query::HYDRATE_ARRAY);
if (!is_null($category)) {
$query->setParameter('category', '%'.$category.'%');
}
return $query->getResult();
}
但控制台总是显示相同的结果,但在我的选择中选择不同的选项
就是选择您选择的选项,总是显示相同的结果。我不知道类别名称是什么样的,但这里有一个可能的错误:
$dql .= " WHERE c.categories.name LIKE :category";
及
如果类别以相同的字母开头,将导致始终显示相同的类别
尝试将$dql
变量的部分更改为=
$dql .= " WHERE c.categories.name LIKE :category";
{% for contentCategory in catContent %}
var nameContent = '{{ contentCategory.name }}';
console.log(nameContent);
{% endfor %}