我已经检查了类似的问题但是由其他人发布但我仍然看不出我的代码中有什么问题。
我刚从文档中复制了它 - https://symfony.com/doc/3.4/page_creation.html
<?php
// src/AppBundle/Controller/LuckyController.php
namespace AppBundle\Controller;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
class LuckyController
{
/**
* @Route("/lucky/number")
*/
public function numberAction()
{
$number = mt_rand(0, 100);
return new Response(
'<html><body>Lucky number: '.$number.'</body></html>'
);
}
}
自动加载器预期类&#34; App \ Controller \ LuckyController&#34;成为 在文件&#34; E:\ projektai \ php中定义 projektai \ htdocs中\ mokomieji \ weather_demo_3 \厂商\作曲家/../../ SRC \控制器\ LuckyController.php&#34 ;. 找到了该文件,但该类不在其中,类名或 命名空间可能在E:\ projektai \ php中有拼写错误 projektai \ htdocs \ mokomieji \ weather_demo_3 \ config / services.yaml(其中 加载在资源&#34; E:\ projektai \ php中 projektai \ htdocs中\ mokomieji \ weather_demo_3 \配置/ services.yaml&#34;。)
所以它说文件被找到但是找不到类。如何找不到课程?我看到了。它是如何尝试搜索它的?
composer.json
{
"type": "project",
"license": "proprietary",
"require": {
"php": "^7.0.8",
"symfony/console": "^3.4",
"symfony/flex": "^1.0",
"symfony/framework-bundle": "^3.4",
"symfony/lts": "^3",
"symfony/yaml": "^3.4"
},
"require-dev": {
"symfony/dotenv": "^3.4"
},
"config": {
"preferred-install": {
"*": "dist"
},
"sort-packages": true
},
"autoload": {
"psr-4": {
"App\\": "src/"
}
},
"autoload-dev": {
"psr-4": {
"App\\Tests\\": "tests/"
}
},
"scripts": {
"auto-scripts": {
"cache:clear": "symfony-cmd",
"assets:install --symlink --relative %PUBLIC_DIR%": "symfony-cmd"
},
"post-install-cmd": [
"@auto-scripts"
],
"post-update-cmd": [
"@auto-scripts"
]
},
"conflict": {
"symfony/symfony": "*"
},
"extra": {
"symfony": {
"id": "01C16444CCZTY1MPPEE5GJZ63G",
"allow-contrib": false
}
}
}
答案 0 :(得分:3)
基于该结构,您可能正在使用Symfony Flex,因此您的命名空间应为namespace App\Controller;
答案 1 :(得分:3)
在我的情况下,我有一段时间没有使用过PHP,我也从教程中复制/粘贴,但实际上我忘了添加
<?php
在文件的开头。导致相同的错误消息。