Php 如何在symfony2中实现分页?
我正在使用Symfony2框架进行一个项目。我在PHP版本5.5.19中使用XAMPP。我有一个表,我想做的是把容易导航分页等。。。我对symfony不熟悉,不知道如何实现它Php 如何在symfony2中实现分页?,php,symfony,Php,Symfony,我正在使用Symfony2框架进行一个项目。我在PHP版本5.5.19中使用XAMPP。我有一个表,我想做的是把容易导航分页等。。。我对symfony不熟悉,不知道如何实现它 有人能帮我吗?在我的项目中,我使用并推荐捆绑包、维护包和无缺陷分页捆绑包 在我的项目中,我使用并推荐捆绑包、维护包和无缺陷分页捆绑包 Symfony标准版中包含的ORM原则从2.2版开始提供 创建它是为了避免第三方Paginator(如前面提到的PagerFanta和KNPaginator)的扩散,这些Paginator现
有人能帮我吗?在我的项目中,我使用并推荐捆绑包、维护包和无缺陷分页捆绑包 在我的项目中,我使用并推荐捆绑包、维护包和无缺陷分页捆绑包 Symfony标准版中包含的ORM原则从2.2版开始提供 创建它是为了避免第三方Paginator(如前面提到的PagerFanta和KNPaginator)的扩散,这些Paginator现在使用它,并且基于它们的代码 它的使用非常简单,不需要任何外部依赖:
// Extracted from the Doctrine doc
use Doctrine\ORM\Tools\Pagination\Paginator;
$dql = "SELECT p, c FROM BlogPost p JOIN p.comments c";
$query = $entityManager->createQuery($dql)
->setFirstResult(0)
->setMaxResults(100);
$paginator = new Paginator($query, $fetchJoinCollection = true);
Symfony标准版中包含的ORM条令从2.2开始提供 创建它是为了避免第三方Paginator(如前面提到的PagerFanta和KNPaginator)的扩散,这些Paginator现在使用它,并且基于它们的代码 它的使用非常简单,不需要任何外部依赖:
// Extracted from the Doctrine doc
use Doctrine\ORM\Tools\Pagination\Paginator;
$dql = "SELECT p, c FROM BlogPost p JOIN p.comments c";
$query = $entityManager->createQuery($dql)
->setFirstResult(0)
->setMaxResults(100);
$paginator = new Paginator($query, $fetchJoinCollection = true);
//细枝文件代码
<nav>
<ul class="pagination">
<li {% if page_no <= 1 %} class='disabled' {% endif %}>
<a {% if page_no > 1 %} href='{{ path('pagination', {'page':previous_page}) }}' {% endif %}>Previous</a>
</li>
{% if total_no_of_pages <= 10 %}
{% set counter = 1 %}
{% for counter in counter..total_no_of_pages %}
{% if counter == page_no %}
<li class='active'><a>{{ counter }}</a></li>
{% else %}
<li><a href='{{ path('pagination', {'page':counter}) }}'>{{ counter }}</a></li>
{% endif %}
{% set counter = counter + 1 %}
{% endfor %}
{% endif %}
{% if total_no_of_pages > 10 %}
{% if page_no <= 4 %}
{% for counter in 1..7 %}
{% if counter == page_no %}
<li class='active'><a>{{ counter }}</a></li>
{% else %}
<li><a href='{{ path('pagination', {'page':counter}) }}'>{{ counter }}</a></li>
{% endif %}
{% set counter = counter + 1 %}
{% endfor %}
<li><a>...</a></li>
<li><a href='{{ path('pagination', {'page': second_last }) }}'>{{ second_last }}</a></li>
<li><a href='{{ path('pagination', {'page': total_no_of_pages }) }}'>{{ total_no_of_pages }}</a></li>
{% endif %}
{% if ( page_no > 4 ) and ( page_no < total_no_of_pages - 4 ) %}
{% set counterMinus = page_no - adjacents %}
{% set counterPlus = page_no + adjacents %}
<li><a href='{{ path('pagination', {'page': 1 }) }}'>1</a></li>
<li><a href='{{ path('pagination', {'page': 2 }) }}'>2</a></li>
<li><a>...</a></li>
{% for counters in counterMinus..counterPlus %}
{% if counters == page_no %}
<li class='active'><a>{{ counters }}</a></li>
{% else %}
<li><a href='{{ path('pagination', {'page': counters }) }}'>{{ counters }}</a></li>
{% endif %}
{% set counters = counters + 1 %}
{% endfor %}
<li><a>...</a></li>
<li><a href='{{ path('pagination', {'page': second_last }) }}'>{{ second_last }}</a></li>
<li><a href='{{ path('pagination', {'page': total_no_of_pages }) }}'>{{ total_no_of_pages }}</a></li>
{% endif %}
{% else %}
<li><a href='{{ path('pagination', {'page': 1 }) }}'>1</a></li>
<li><a href='{{ path('pagination', {'page': 2 }) }}'>2</a></li>
<li><a>...</a></li>
{% set counterMin = total_no_of_pages - 6 %}
{% for counterss in counterMin..total_no_of_pages %}
{% if counterss == page_no %}
<li class='active'><a>{{ counterss }}</a></li>
{% else %}
<li><a href='{{ path('pagination', {'page': counterss }) }}'>{{ counterss }}</a></li>
{% endif %}
{% set counterss = counterss + 1 %}
{% endfor %}
{% endif %}
{% if page_no >= total_no_of_pages - 4 %}
<li><a href='{{ path('pagination', {'page': 1 }) }}'>1</a></li>
<li><a href='{{ path('pagination', {'page': 2 }) }}'>2</a></li>
<li><a>...</a></li>
{% set lastCount = page_no %}
{% for lastCount in page_no..total_no_of_pages %}
{% if lastCount == page_no %}
<li class='active'><a>{{ lastCount }}</a></li>
{% else %}
<li><a href='{{ path('pagination', {'page': lastCount }) }}'>{{ lastCount }}</a></li>
{% endif %}
{% set lastCount = lastCount + 1 %}
{% endfor %}
{% endif%}
<li {% if page_no >= total_no_of_pages %} class='disabled' {% endif %}>
<a {% if page_no < total_no_of_pages %} href='{{ path('pagination', {'page': next_page }) }}' {% endif %}>Next</a>
</li>
{% if page_no < total_no_of_pages %}
<li><a href='{{ path('pagination', {'page': total_no_of_pages }) }}'>Last ››</a></li>
{% endif %}
</ul>
</nav>
//细枝文件代码
<nav>
<ul class="pagination">
<li {% if page_no <= 1 %} class='disabled' {% endif %}>
<a {% if page_no > 1 %} href='{{ path('pagination', {'page':previous_page}) }}' {% endif %}>Previous</a>
</li>
{% if total_no_of_pages <= 10 %}
{% set counter = 1 %}
{% for counter in counter..total_no_of_pages %}
{% if counter == page_no %}
<li class='active'><a>{{ counter }}</a></li>
{% else %}
<li><a href='{{ path('pagination', {'page':counter}) }}'>{{ counter }}</a></li>
{% endif %}
{% set counter = counter + 1 %}
{% endfor %}
{% endif %}
{% if total_no_of_pages > 10 %}
{% if page_no <= 4 %}
{% for counter in 1..7 %}
{% if counter == page_no %}
<li class='active'><a>{{ counter }}</a></li>
{% else %}
<li><a href='{{ path('pagination', {'page':counter}) }}'>{{ counter }}</a></li>
{% endif %}
{% set counter = counter + 1 %}
{% endfor %}
<li><a>...</a></li>
<li><a href='{{ path('pagination', {'page': second_last }) }}'>{{ second_last }}</a></li>
<li><a href='{{ path('pagination', {'page': total_no_of_pages }) }}'>{{ total_no_of_pages }}</a></li>
{% endif %}
{% if ( page_no > 4 ) and ( page_no < total_no_of_pages - 4 ) %}
{% set counterMinus = page_no - adjacents %}
{% set counterPlus = page_no + adjacents %}
<li><a href='{{ path('pagination', {'page': 1 }) }}'>1</a></li>
<li><a href='{{ path('pagination', {'page': 2 }) }}'>2</a></li>
<li><a>...</a></li>
{% for counters in counterMinus..counterPlus %}
{% if counters == page_no %}
<li class='active'><a>{{ counters }}</a></li>
{% else %}
<li><a href='{{ path('pagination', {'page': counters }) }}'>{{ counters }}</a></li>
{% endif %}
{% set counters = counters + 1 %}
{% endfor %}
<li><a>...</a></li>
<li><a href='{{ path('pagination', {'page': second_last }) }}'>{{ second_last }}</a></li>
<li><a href='{{ path('pagination', {'page': total_no_of_pages }) }}'>{{ total_no_of_pages }}</a></li>
{% endif %}
{% else %}
<li><a href='{{ path('pagination', {'page': 1 }) }}'>1</a></li>
<li><a href='{{ path('pagination', {'page': 2 }) }}'>2</a></li>
<li><a>...</a></li>
{% set counterMin = total_no_of_pages - 6 %}
{% for counterss in counterMin..total_no_of_pages %}
{% if counterss == page_no %}
<li class='active'><a>{{ counterss }}</a></li>
{% else %}
<li><a href='{{ path('pagination', {'page': counterss }) }}'>{{ counterss }}</a></li>
{% endif %}
{% set counterss = counterss + 1 %}
{% endfor %}
{% endif %}
{% if page_no >= total_no_of_pages - 4 %}
<li><a href='{{ path('pagination', {'page': 1 }) }}'>1</a></li>
<li><a href='{{ path('pagination', {'page': 2 }) }}'>2</a></li>
<li><a>...</a></li>
{% set lastCount = page_no %}
{% for lastCount in page_no..total_no_of_pages %}
{% if lastCount == page_no %}
<li class='active'><a>{{ lastCount }}</a></li>
{% else %}
<li><a href='{{ path('pagination', {'page': lastCount }) }}'>{{ lastCount }}</a></li>
{% endif %}
{% set lastCount = lastCount + 1 %}
{% endfor %}
{% endif%}
<li {% if page_no >= total_no_of_pages %} class='disabled' {% endif %}>
<a {% if page_no < total_no_of_pages %} href='{{ path('pagination', {'page': next_page }) }}' {% endif %}>Next</a>
</li>
{% if page_no < total_no_of_pages %}
<li><a href='{{ path('pagination', {'page': total_no_of_pages }) }}'>Last ››</a></li>
{% endif %}
</ul>
</nav>
//控制器文件
public function paginationAction($page)
{
$commObj = new CommonController();
$commObj->setContainer($this->container);
/** session manager creation */
$session = $this->getRequest()->getSession();
/* Session Check */
if(!$session->has('Id'))
{
return $this->redirectToRoute('login_login_homepage');
}
if(isset($page) && (!empty($page))){
$page_no = $page;
}
else{
$page_no = 1;
}
$total_records_per_page = 25;
$offset = ($page_no-1) * $total_records_per_page;
$previous_page = $page_no - 1;
$next_page = $page_no + 1;
$adjacents = "2";
$total_records = sizeof($lists);
$total_no_of_pages = ceil($total_records / $total_records_per_page);
$second_last = $total_no_of_pages - 1;
$em = $this->getDoctrine()->getManager();
$repository = $em->getRepository('AppAppBundle:MasterCustomer');
$select_query = $repository->createQueryBuilder('QB')
->select('QB.id,QB.uniqueId,QB.customerName,QB.emailId,QB.mobileNo,QB.customerAddress,QB.customerCity,QB.customerState,QB.customerCountry,QB.status')
->setFirstResult($offset)
->setMaxResults($total_records_per_page)
->where('QB.status!=:sts')
->setParameter('sts', 2)
->orderBy('QB.id', 'DESC')
->getQuery();
$list = $select_query->getArrayResult();
return $this->render('MasterMasterBundle:Customer:index.html.twig',array('lists' => $list, 'total_no_of_pages' => $total_no_of_pages, 'page_no' => $page_no, 'second_last' => $second_last, 'adjacents' => $adjacents, 'total_records' => $total_records, 'next_page' => $next_page, 'previous_page' => $previous_page, 'total_records_per_page' => $total_records_per_page));
}
//控制器文件
public function paginationAction($page)
{
$commObj = new CommonController();
$commObj->setContainer($this->container);
/** session manager creation */
$session = $this->getRequest()->getSession();
/* Session Check */
if(!$session->has('Id'))
{
return $this->redirectToRoute('login_login_homepage');
}
if(isset($page) && (!empty($page))){
$page_no = $page;
}
else{
$page_no = 1;
}
$total_records_per_page = 25;
$offset = ($page_no-1) * $total_records_per_page;
$previous_page = $page_no - 1;
$next_page = $page_no + 1;
$adjacents = "2";
$total_records = sizeof($lists);
$total_no_of_pages = ceil($total_records / $total_records_per_page);
$second_last = $total_no_of_pages - 1;
$em = $this->getDoctrine()->getManager();
$repository = $em->getRepository('AppAppBundle:MasterCustomer');
$select_query = $repository->createQueryBuilder('QB')
->select('QB.id,QB.uniqueId,QB.customerName,QB.emailId,QB.mobileNo,QB.customerAddress,QB.customerCity,QB.customerState,QB.customerCountry,QB.status')
->setFirstResult($offset)
->setMaxResults($total_records_per_page)
->where('QB.status!=:sts')
->setParameter('sts', 2)
->orderBy('QB.id', 'DESC')
->getQuery();
$list = $select_query->getArrayResult();
return $this->render('MasterMasterBundle:Customer:index.html.twig',array('lists' => $list, 'total_no_of_pages' => $total_no_of_pages, 'page_no' => $page_no, 'second_last' => $second_last, 'adjacents' => $adjacents, 'total_records' => $total_records, 'next_page' => $next_page, 'previous_page' => $previous_page, 'total_records_per_page' => $total_records_per_page));
}
你能告诉我为什么否决我的问题吗?如果可能的话发表评论,,,谢谢:谷歌搜索symfony分页会得到很多结果。@ERROR在这里,谷歌搜索可以让你免于失去销售代表,哦,这就是他们剔除多余销售代表的方式……你能告诉我为什么要否决我的问题吗?如果可能的话发表评论,,谢谢:谷歌搜索symfony分页会得到很多结果。@错误在这里,谷歌搜索可以让你免于失去销售代表,哦,这就是他们如何剔除多余的销售代表的方法……你能用简单易懂的术语简要说明答案吗?你也能用简单易懂的术语简要说明答案吗?