-2

バンドル backend/main/ を作成しました:

私のアプリ/routing.yml

backendmain:
    resource: "@backendmainBundle/Resources/config/routing.yml"
    prefix:   /main

私のバックエンド/バンドル/mainBundle/config/routing.yml:

backendmain_homepage:
    pattern:  /hello/{name}
    defaults: { _controller: backendmainBundle:Default:index }

私のバックエンド/バンドル/mainBundle/DefaultController.php:

namespace backend\Bundle\mainBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;

    class DefaultController extends Controller
    {
        public function indexAction($name)
        {
            return $this->render('backendmainBundle:Default:index.html.twig', array('name' => $name));
        }

            public function testAction($name)
        {
            return $this->render('backendmainBundle:Default:test.html.twig', array());
        }
    }

ブラウザでアクション テストを呼び出すにはどうすればよいですか?

申し訳ありませんが、Fabien は Symfony2 を作成したとき、麻薬を使用していましたか? Symfony 1.4 はとても簡単でした!

4

1 に答える 1

2

テスト アクションのルート定義に一致するものはありません。追加した唯一のルートは index アクション用です。したがって、次のようなものを追加する必要があります。

backendmain_test:
    pattern:  /test
    defaults: { _controller: backendmainBundle:Default:test }

backend/Bundle/mainBundle/config/routing.ymlファイル内で、テスト アクションを呼び出すことができます。

更新: 注釈の使用

アプリ/構成/ルーティング.yml

backendmain:
    resource: "@backendmainBundle/Controller/DefaultController.php"
    prefix:   /main
    type:     annotation

DefaultController.php

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
// ...

class DefaultController extends Controller
{
    /**
     * @Route("/test", name="backendmain_test")
     */
    public function testAction()
    {
        // ...
    }

    // ...
于 2012-11-21T23:41:35.077 に答える