找不到“GET /hello.html”
的路线这是我尝试访问http://localhost/project/web/app_dev.php/hello.html
DefaultController:
<?php
/**
* @Route("/hello.html")
* @Template()
*/
public function indexAction()
{
return array();
}
?>
的routing.yml:
MyHelloworldBundle:
resource: "@MyHelloworldBundle/Controller/"
type: annotation
prefix: /
AppKernel.php:
class AppKernel extends Kernel
{
public function registerBundles()
{
$bundles = array(
new Symfony\Bundle\FrameworkBundle\FrameworkBundle(),
new Symfony\Bundle\SecurityBundle\SecurityBundle(),
new Symfony\Bundle\TwigBundle\TwigBundle(),
new Symfony\Bundle\MonologBundle\MonologBundle(),
new Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle(),
new Symfony\Bundle\AsseticBundle\AsseticBundle(),
new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(),
new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(),
new JMS\AopBundle\JMSAopBundle(),
new JMS\DiExtraBundle\JMSDiExtraBundle($this),
new JMS\SecurityExtraBundle\JMSSecurityExtraBundle(),
new My\HelloworldBundle\MyHelloworldBundle(),
);
if (in_array($this->getEnvironment(), array('dev', 'test'))) {
$bundles[] = new Symfony\Bundle\WebProfilerBundle\WebProfilerBundle();
$bundles[] = new Sensio\Bundle\DistributionBundle\SensioDistributionBundle();
$bundles[] = new Sensio\Bundle\GeneratorBundle\SensioGeneratorBundle();
}
return $bundles;
}
public function registerContainerConfiguration(LoaderInterface $loader)
{
$loader->load(__DIR__.'/config/config_'.$this->getEnvironment().'.yml');
}
}
整个文件结构似乎没问题,src / My / HelloworldBundle / ...出了什么问题?
我唯一能做的就是删除acme demo - routing_dev.php的三个部分,以及AppKernel.php中的一行。
将控制器中的注释更改为其他内容也不起作用。视图文件src / My / HelloworldBundle / Resources / views / Default / index.html.twig存在。
编辑:
执行route:match命令时,没有路由匹配。
这是错误日志:http://khernik.pl/asd.png 顶部:http://khernik.pl/asdf.png
我现在从头开始执行所有操作,使用symfony进行大多数默认设置(在创建新包时添加了自己的代码)。我做的唯一的事情是从AppKernel.php中删除Acme行,并从routing_dev.yml中删除三个第一块acme。一切似乎都是对的。
然而,仍然无法运作。
编辑2 - 完全默认控制器:
<?php
namespace My\HelloworldBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
class DefaultController extends Controller
{
/**
* @Route("/hello/{name}")
* @Template()
*/
public function indexAction($name)
{
return array('name' => $name);
}
}
答案 0 :(得分:0)
尝试在Template()
DemoController
属性
<?php
/**
* @Route("/hello")
* @Template('MyHelloworldBundle:Demo:hello.html')
*/
public function helloAction()
{
return array();
}
?>
答案 1 :(得分:-1)
请在hello.html之前添加您的ControllerName
class DemoController extends Controller
{
/**
* @Route("/hello.html")
* @Template()
*/
public function indexAction()
{
return array();
}
喜欢,要访问此内容:请在下面调用此网址:
http://localhost/project/web/app_dev.php/demo/hello.html