Symfony2のルーティングに問題があります。
実際、最新のリリースをダウンロードしてサーバーで実行しました。デモは正常に機能します。
ここで、次のことを実行します。TestControllerを作成したいので、このコントローラーには次のものが必要です。
- インデックスビュー
- HelloWorldのようなビュー
- 2つのパラメーターを渡すことができるビュー
src\Acme\DemoBundle\Controller
そこで、というフォルダに新しいコントローラを作成し始めましたTestController
。コードは次のとおりです。
<?php
namespace Acme\DemoBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Acme\DemoBundle\Form\ContactType;
// these import the "@Route" and "@Template" annotations
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
class TestController extends Controller
{
public function indexAction()
{
return array();
}
public function hello2Action($name1, $name2)
{
return array();
}
public function helloAction()
{
return array();
}
}
次に、とsrc\Acme\DemoBundle\Resources\views\Test
呼ばれる新しいフォルダに3つのビューを作成しました。hello.html.twig
index.html.twig
hello2.html.twig
どちらもこんな内容です
{% extends "AcmeDemoBundle::layout.html.twig" %}
{% block title "Symfony - Demos" %}
{% block content_header '' %}
{% block content %}
foo!!!
{% endblock %}
最後に、を編集して、次のrouting.dev.yml
ようなものを追加しました。
_name1:
resource: "@AcmeDemoBundle/Controller/TestController.php"
type: annotation
prefix: /test
_name2:
resource: "@AcmeDemoBundle/Controller/TestController.php"
type: annotation
prefix: /test/hello
_name3:
resource: "@AcmeDemoBundle/Controller/TestController.php"
type: annotation
prefix: /test/hello2/{name1}&{name2}
テストコントローラーを実行したい場合は、次のようになります。
「GET/test/」のルートが見つかりません
なにが問題ですか?2つのコントローラー機能に対して1つのビューを持つことは可能ですか?(hello()やhello($ foo)のように)?