PHP Symfony 语义错误

sun*_*tch 2 php symfony

我创建了名为 SampleController.php 的 src/Controller 文件:

<?php
namespace App\Controller;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;

class sampleController extends Controller
{
    /**
     * @Route("/hello")
     */
    public function number()
    {
        $number = mt_rand(0, 100);

        return $this->render('sample/number.html.twig', array(
            'number' => $number,
        ));
    }
}
Run Code Online (Sandbox Code Playgroud)

我的树枝文件是这样的:

<h1>Number is: {{ number }}</h1>
Run Code Online (Sandbox Code Playgroud)

和routes.yaml是这样的:

sample_asd:
  path: /hello
  controller: App\Controller\sampleController::number
Run Code Online (Sandbox Code Playgroud)

我已经安装了注释和 --dev 分析器。但是当我导航到http://localhost:8000/hello时,它给出:

HTTP 500 内部服务器错误 [语义错误] 方法 App\Controller\sampleController::number() 中的注释“@Route”从未导入。您是否可能忘记为此注释添加“use”语句?在 C:\xampp\htdocs\Projects\symfony_learning\config/routes../../src/Controller/ (从“C:\xampp\htdocs\Projects\symfony_learning\config/routes/annotations.yaml”导入”)。确保注释已安装并启用。

我不明白有什么问题。

谢谢

Mik*_*Kor 5

您确实忘记包含注释类。尝试添加这个。

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
Run Code Online (Sandbox Code Playgroud)

更新

对于 symfony 4,您应该使用此路径。

use Symfony\Component\Routing\Annotation\Route;
Run Code Online (Sandbox Code Playgroud)