控制器不存在

Posted

技术标签:

【中文标题】控制器不存在【英文标题】:Controller does not exist 【发布时间】:2022-01-06 09:43:31 【问题描述】:

我有一个问题,我无法解决。或许你能帮忙?

我切换到一个新的 vHost,我使用 Plesk Obsidian 来管理它。 在旧服务器上,我成功地开发了一个 Symfony 5 项目。这 项目存储在 github 存储库中(本地数据除外)。

所以在更改到新服务器时,我做了以下操作:

我在新服务器上通过 ssh 检查了 git 项目。 我使用 composer install 安装了 id,并使用 composer update 更新了所有包 我添加了旧数据库并启用了开发环境进行测试。 我在 Plesk 中添加了一个新的子域,指向 symfony 项目的公共目录。 我在 public 目录中添加了一个 .htaccess 文件,内容如下:
<IfModule mod_rewrite.c>
    Options -MultiViews
    RewriteEngine On
    RewriteCond %REQUEST_FILENAME !-f
    RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>

<IfModule !mod_rewrite.c>
    <IfModule mod_alias.c>
        RedirectMatch 302 ^/$ /index.php/
    </IfModule>
</IfModule>

Now on accessing the subdomain, The default page loads. But on accessing a subpage, I get the following error:

Class "1\PageController" does not exist in /var/www/vhosts/xx/xx/config/routes/../../src/Controller/ (which is being imported from "/var/www/vhosts/xx/xx/config/routes/annotations.yaml"). Make sure annotations are installed and enabled

【问题讨论】:

【参考方案1】:

解决办法是

移除 plesk 的 composer 插件 删除项目的所有文件 再次克隆 git 项目 以 root 身份安装(或任何其他用户,不是真正的系统用户) 作曲家安装

也许我已经安装了 plesk 插件,它仍然是 composer 1.* 而不是最新的,这是问题所在。并非一切正常。

【讨论】:

【参考方案2】:

也许根本不是这样,但我在使用 InteliJ IDE 时遇到了同样的问题,因为当您重新格式化控制器时,它会从文件中删除注释的导入。 也许会有所帮助。

【讨论】:

以上是关于控制器不存在的主要内容,如果未能解决你的问题,请参考以下文章

tp5 多入口 控制器不存在:Index

方法控制器不存在。

presentViewController 不存在

目标类控制器不存在 - Laravel 8

Laravel 中不存在类控制器

控制器不存在