PHP Symfony语义错误

时间:2018-03-15 15:58:05

标签: 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,
        ));
    }
}

我的twig文件是这样的:

<h1>Number is: {{ number }}</h1>

而routes.yaml是这样的:

sample_asd:
  path: /hello
  controller: App\Controller\sampleController::number

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

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

我不明白是什么问题。

由于

1 个答案:

答案 0 :(得分:4)

您确实忘记了包含注释类。尝试添加此内容。

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;

<强>更新

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

use Symfony\Component\Routing\Annotation\Route;