web-dev-qa-db-ja.com

Symfony4アノテーションルーティングが機能しない

私はsymfonyを学び始めました。私は この公式チュートリアル に従っています。ルーティングは、config/routes.yamlしかし annotations の使用について:

namespace App\Controller;

use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Annotation\Route;

class LuckyController
{

    /**
     *  @Route("/lucky/number")
     */
    public function number(){

        $number = mt_Rand(0, 100);

        return new Response(
            '<html><body><h1>MyLucky Number: ' . $number . '</h1></body></html>'
        );
    }
}

私はこのエラーを受け取ります:

    Exception thrown when handling an exception
(Symfony\Component\Config\Exception\FileLoaderLoadException: [Semantical Error]
 The annotation "@Symfony\Component\Annotation\Route" in method 
App\Controller\LuckyController::number() does not exist, or could not be auto-loaded
 in C:\wamp\vhosts\mysymfony4\config/routes\../../src/Controller/ (which is
 being imported from "C:\wamp\vhosts\mysymfony4\config/routes/annotations.yaml"). Make sure
 annotations are installed and enabled.)
5
okey_on

(Symfony5プロジェクトで)同じ問題がありましたが、ルートとルート名に二重引用符ではなく単一引用符を使用していたのが私の間違いでした。時々、小さなばかげた間違いはあなたの時間の多くを浪費します。ちなみに、SF4/SF5では、FrameworkExtraBundleのルーティングを使用しないでください。

Sensio\Bundle\FrameworkExtraBundle\Configuration\Route

Symfonyコンポーネント(ルーティング/アノテーション)を使用する必要があります。

use Symfony\Component\Routing\Annotation\Route;
0
ahmadzai

annotationsライブラリcomposer req annotationsをインストールしていることを確認してください。これは私の問題であり、ここで説明している問題ではありません。

0
Hamlet