首页 > 解决方案 > Knp Paginator 表名中的下划线问题?

问题描述

当我发现这个捆绑包可以多么简单的分页时,我感到非常高兴。但是几天后我遇到了一个问题。我收到有关不存在表的错误。

我在 symfony 3.4 中安装了 Knp Paginator 包,为几个类实现了它。现在我有类 AppBundle\Entity\HAddress。并且捆绑理解它的名称错误的方式。这是我的实体(它的一部分):

/**
 * HAddress
 *
 * @ORM\Table(name="h_address")
 * @ORM\Entity(repositoryClass="AppBundle\Repository\HAddressRepository")
 * @Table(indexes={@Index(columns={"house_number", "street"}, flags={"fulltext"})})
 */
class HAddress

这是我的控制器:

public function indexAction(Request $request)
{
        // Not important for this
    if(isset($searchString) && !empty($searchString)) {
        // Not important for this
    } else {
        $find = $this->getDoctrine()
            ->getRepository("AppBundle:HAddress")->createQueryBuilder("p");     <-------------Here is the problem

        /** @var EntityManager $em */
        $query = $em->createQuery($find);

        /** @var "Knp\Component\Pager\Paginator" */
        $hAddresses = $paginator->paginate(
            $query            <----------- And Here
        );
    }

    return $this->render('haddress/index.html.twig', array(

在加载页面上,我收到此错误:

执行 'SELECT count(DISTINCT h0_.id) AS sclr_0 FROM haddress h0_' 时发生异常:

SQLSTATE [42S02]:未找到基表或视图:1146 表 'horus.haddress' 不存在

从上面的注释很明显,表名是“h_address”而不是“haddress”。这是某种命名约定,我不知道我错过了一些配置设置还是错误?

请如果您知道如何帮助我解决此问题。怎么做 Knp Paginator 看到并使用正确的表名?

标签: phpknppaginator

解决方案


哦,对不起,我刚刚注意到添加这些全文索引后我没有更新数据库:

* @Table(indexes={@Index(columns={"house_number", "street"}, flags={"fulltext"})})

运行后

学说:架构:更新--force

一切正常。


推荐阅读