我想问你关于symfony中的路由。我知道我们可以在行动的基础上设置一条路线,但是当我把路线放在上课时,我看到了一种方法。我想知道这意味着什么?因为当我把路线放在第一课时,我找不到找不到页面的错误。
<?php
namespace AppBundle\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
/**
* Class DefaultController
* @package AppBundle\Controller
* @Route('/Test')
*/
class DefaultController extends Controller
{
/**
* @Route("/", name="homepage")
* @Template()
*/
public function indexAction(Request $request)
{
// replace this example code with whatever you need
return $this->render('default/index.html.twig', array(
'base_dir' => realpath($this->container->getParameter('kernel.root_dir').'/..'),
));
}
}
提前致谢。
答案 0 :(得分:3)
注释 @Route 可以在方法和类中使用。
控制器应始终包装由同一主题相关的方法,例如CartController。在这个控制器中你将有与Cart相关的方法,所以你应该能够为所有这些方法定义一些前缀。
因此,如果您有 @Route(“/ cart”),则使用该注释定义的每个方法的路由都将附加到此前缀 / cart 。请记住,追加并不意味着被覆盖。
这应该有效。
您的“找不到页面”消息与此注释无关:)
检查您的路线是否正在加载的一些步骤。
php app/console debug:route
。对于Symfony 3. *,php bin/console debug:router
和非常古老的Symfony版本...... php app/console router:debug
。检查如何以多种方式从注释中加载路由here
简单的方法是......
app:
resource: "@AppBundle/Controller"
type: annotation