我创建了名为 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”导入”)。确保注释已安装并启用。
我不明白有什么问题。
谢谢
您确实忘记包含注释类。尝试添加这个。
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)