0

「GET /hello.html」のルートが見つかりません

これは、アクセスしようとすると発生するエラーですhttp://localhost/project/web/app_dev.php/hello.html

デフォルトコントローラー:

<?php
/**
 * @Route("/hello.html")
 * @Template()
 */
public function indexAction()
{
    return array();
}
?>

ルーティング.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 の 3 つの部分と 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 の最初の 3 つのブロックを削除することでした。すべてが正しいようです。

それでも、まだ機能しません。

編集 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);
    }
}
4

2 に答える 2

-1

hello.html の前に ControllerName を追加してください

class DemoController extends Controller
{
    /**
     * @Route("/hello.html")
     * @Template()
     */
    public function indexAction()
    {
        return array();
    }

同様に、これにアクセスするには: 以下の URL を呼び出します。

http://localhost/project/web/app_dev.php/demo/hello.html
于 2013-02-22T18:32:54.180 に答える