class 之上的 Symfony 2.7 路由
Symfony 2.7 Route on top of class
想请教一下symfony中的路由问题。我知道我们可以将路线放在动作之上,但我看到了将路线放在 class 之上的方法。我想知道这是什么意思?因为当我将路线放在 class 之上时,我收到页面未找到错误。
<?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').'/..'),
));
}
}
提前致谢。
注释 @Route 可以在方法和 类 中使用。
控制器应始终包装与同一主题相关的方法,例如 CartController。在这个控制器中,您将拥有与 Cart 相关的方法,因此您应该能够为所有这些方法定义某种前缀。
所以,如果你有 @Route("/cart"),用那个注解定义的每个方法的路由都会附加到这个前缀 /cart。请记住,附加并不意味着覆盖。
应该可以。
您的"Page not found"留言与此注释无关:)
更新
检查您的路线是否正在加载的一些步骤。
- Symfony 为您带来了路由器调试器。它列出了您项目中所有已找到和可用的路线。从项目的根开始,
php app/console debug:route
。对于 Symfony 3.*,php bin/console debug:router
和非常旧的 Symfony 版本... php app/console router:debug
.
- 如果路线不存在,请确保正在加载您的路线。您需要向框架指定您的控制器需要解析才能找到 @Route 注释 :)
查看如何通过多种方式从注解加载路由here
简单的方法是...
app:
resource: "@AppBundle/Controller"
type: annotation
想请教一下symfony中的路由问题。我知道我们可以将路线放在动作之上,但我看到了将路线放在 class 之上的方法。我想知道这是什么意思?因为当我将路线放在 class 之上时,我收到页面未找到错误。
<?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').'/..'),
));
}
}
提前致谢。
注释 @Route 可以在方法和 类 中使用。
控制器应始终包装与同一主题相关的方法,例如 CartController。在这个控制器中,您将拥有与 Cart 相关的方法,因此您应该能够为所有这些方法定义某种前缀。
所以,如果你有 @Route("/cart"),用那个注解定义的每个方法的路由都会附加到这个前缀 /cart。请记住,附加并不意味着覆盖。
应该可以。
您的"Page not found"留言与此注释无关:)
更新
检查您的路线是否正在加载的一些步骤。
- Symfony 为您带来了路由器调试器。它列出了您项目中所有已找到和可用的路线。从项目的根开始,
php app/console debug:route
。对于 Symfony 3.*,php bin/console debug:router
和非常旧的 Symfony 版本...php app/console router:debug
. - 如果路线不存在,请确保正在加载您的路线。您需要向框架指定您的控制器需要解析才能找到 @Route 注释 :)
查看如何通过多种方式从注解加载路由here
简单的方法是...
app:
resource: "@AppBundle/Controller"
type: annotation