2016-07-21 8 views
0

Symfonyルーティングコンポーネントを使用しようとしていますが、1つのことを理解できません - Routeクラスのインスタンスでコントローラへのパスを設定する方法はありますか?Symfonyルーティングコンポーネントを起動しようとしています

例えば、私はコードで私のapp.phpファイル配置/webディレクトリがあります。

$route = new Route('/{name}', array('controller' => 'IndexController.php')); 

と同じディレクトリには、パラメータ名を受け入れて、いくつかの値を返す必要がありますIndexController.phpファイル配置機能を配置しました

class IndexController 
{ 

    public function helloAction($name) { 
     return 'Hello '. $name; 
    } 

} 

しかし、私はいくつかのパスに行くと、ex /test私はただの空白のページが表示されます。

どのようにコントローラとアクション機能にパスを設定する必要がありますか?

+0

ちょうど、ルートオブジェクトを作成して明確化するもとでFQCNを置く必要があり、すべてのあなたがやっていますか?実際にルーティングするためのルーティングインフラストラクチャが必要なためです。あなたは次のとおりです:http://symfony.com/doc/current/components/routing/introduction.html#usage – Cerad

+0

いいえ、それは単なるコード行です。 –

+0

いいえ。まず、私があなたに与えたリンクに従ってください。それはあなたに合ったルートのためのパラメータを与えるでしょう。その後、実際にコントローラメソッドを実行するために、ある種のコントローラリゾルバを実装する必要があります。たくさんの楽しみ。これは参考になるかもしれません:http://symfony.com/doc/current/book/from_flat_php_to_symfony2.html – Cerad

答えて

0

IndexController/webフォルダにはなく、/src/YourBundleNameフォルダにあり、最初にsymfonyにルートを登録する必要があります。バンドルとあなたのためのコントローラを生成する

使用symfonyのコンソール:

// Generate bundle 
php bin/console generate:bundle 

// Generate controller 
php bin/console generate:controller 

コントローラジェネレータは、ルートをお願いし、それが自動的にあなたのためのルートを生成します。

利用はご登録のルートを確認するために、別のsymfonyのコンソールコマンドを使用することができます。

php bin/console debug:router 

あなたがここにあなたのルートを見ることができない場合は、それが登録されていない、あなたがそれにアクセスすることはできません。

+0

私はSymfonyを使用していません、私はちょうど私のプロジェクトで別のSymfonyのコンポーネントを実装しようとしています –

1

あなたのコントローラへのパスを設定する必要はありません - あなたはPSR-4に従うと「コントローラ」キー(または単にIndexController::class

関連する問題