我创建了名为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”导入“)。确保安装并启用了注释。
我不明白是什么问题。
由于
答案 0 :(得分:4)
您确实忘记了包含注释类。尝试添加此内容。
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
<强>更新强>
对于symfony 4,您应该使用此路径。
use Symfony\Component\Routing\Annotation\Route;