我觉得有点不好并且对于这个问题感到羞愧,但是我已经看过谷歌并没有找到我的问题的答案。至少没有一个我能够正确理解。 我正面临着knppaginatorbundle和symfony的问题。我发现我的分页并没有使用基本/路线,但它实际上是在使用类似于/ home的路线。
我的问题是,如何修改我的.htaccess symfony文件,将用户从www.example.com重定向到www.example.com/home?
这是我的.htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
#<IfModule mod_vhost_alias.c>
# RewriteBase /
#</IfModule>
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ app.php [QSA,L]
</IfModule>
<files php.ini>
order deny,allow
deny from all
</files>
答案 0 :(得分:0)
实际上我找到了答案而且它不在.htaccess中......我担心在我说话之前我应该想到的证据:P
所以我最后通过在我的控制器中使用indexAction()来简单地重定向到另一个在同一个控制器中调用另一个动作listAction()的路径。这个listAction自然包含indexAction()最初包含的内容。那清楚了吗?这是代码;)
<?php
namespace Pf\Bundle\BlogBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
class HomeController extends Controller
{
public function indexAction()
{
return $this->redirect($this->generateUrl('pf_blog_index2'));
}
public function listAction()
{
$em = $this->get('doctrine.orm.entity_manager');
$dql = "SELECT a FROM PfBlogBundle:Projects a ORDER by a.id DESC";
$query = $em->createQuery($dql);
$paginator = $this->get('knp_paginator');
$pagination = $paginator->paginate(
$query,
$this->get('request')->query->get('page', 1)/*page number*/,
8 /*limit per page */
);
// Puis modifiez la ligne du render comme ceci, pour prendre en compte l'article :
return $this->render('PfBlogBundle:Default:home.html.twig', array('pagination'=>$pagination));
}
}
路线:
pf_blog_index:
path: /
defaults: { _controller: PfBlogBundle:Home:index }
pf_blog_index2:
path: /home
defaults: { _controller: PfBlogBundle:Home:list }
现在这对我来说听起来很明显,但我想这取决于你的观点。我觉得有点惭愧但我相信它对将来像我这样的人有益。