我有两个同名控制器:

app\controllers\CareersController.php(供公众使用)

由于命名冲突,我在管理控制器中添加了namespace admin;.

本地一切正常,但当我将新的管理控制器上传到服务器时,我得到一个错误:Class Admin\CareersController does not exist

据我所知,解决办法是:

但是,我没有Shell访问权限来运行这些命令,而且服务器上也没有安装composer.那么,有没有一种方法可以在不访问Shell的情况下重新加载自动加载文件?

推荐答案

您不需要shell访问.Artisan包含dump-autoload个功能.您可以通过应用程序中的PHP调用来实现:

Route::get('/updateapp', function()
{
    \Artisan::call('dump-autoload');
    echo 'dump-autoload complete';
});

编辑:刚刚注意到你写了"composer isn't installed on the server anyway"篇.不确定会发生什么-试试上面的命令,让我们知道.

如果不起作用,就在本地运行composer dump autoload,然后上传新的autoload.php.

作为补充——有没有切换服务器的选项?如果没有命令行&;composer 访问.您只需使用Forge,在DigitalOcean、Linode等平台上启动一台新服务器,所需时间比修复此问题所需的时间要短:)

Laravel相关问答推荐

try 编写一个函数,如果产品存在,则无法删除特定类别

Hostinger Laravel网站未显示错误

如何定制有关密码被泄露的Laravel Breeze S消息?

阻止用户查看其他用户正在查看的内容的最佳方法是什么?

在 laravel 中查询此类数据的最佳做法是什么?

处理程序类中的错误 - Laravel

laravel 控制器中的全局变量

允许的内存大小 134217728 字节用尽(试图分配 20480 字节) Laravel

限制 Blade foreach 循环中的结果

具有实时和 WebSockets 的 Angular2 + Laravel

在 laravel 查询构建器中使用多个 where 子句

laravel:如何在 Eloquent Query 中使用 LOWERCASE 函数?

Laravel timestamps() 不会创建 CURRENT_TIMESTAMP

PHP 5.5,什么情况下PHP会导致很高的committed memory

SQLSTATE [01000]:警告:1265 列的数据被截断(truncated)

如何在没有 Artisan 的情况下运行 Laravel?

如何在 Laravel 5.1 中改变环境?

如何仅在Blade模板存在时才包含它?

Laravel db 迁移 - renameColumn 错误 - 请求了未知的数据库类型枚举

Laravel:在另一个控制器中加载方法而不更改 url