首页 > 解决方案 > Laravel Controller 不存在,但实际上存在

问题描述

我的控制器有问题。在我的本地仓库中,我serve的项目可以正常工作!route: atweb.php Route::get('/jobs', 'one\jobs\JobsController@index');但是当我在我公司的服务器上尝试时,它不起作用!它说控制器不存在。我已经比较了控制器和网络路由,但它与我的本地路由相同。

这是我的控制器:

应用\Http\Controllers\one\Jobs\JobsController;

    <?php
    
    namespace App\Http\Controllers\one\Jobs;
    
    use App\Http\Controllers\Controller;
    use Illuminate\Http\Request;
    use App\Library\One\ApiLibrary;
    use Alert;
    
    class JobsController extends Controller
    {
        public function __construct()
        {
            $this->apiLib = new ApiLibrary;
        }
        /**
         * Display a listing of the resource.
         *
         * @return \Illuminate\Http\Response
         */
        public function index(Request $request)
        {
            $token = $request->session()->get('token');
            $put['data'] = ['token' => $token];
            
            $this->apiLib->setParams($put['data']);
            $result = $this->apiLib->generate('GET','/api/jobs');
            
            if(!empty($result->status))
            {
                $data = $result->data;
                $action = $result->action->original;
    
                return view('one.jobs.jobsList',compact('data', 'action'));
            }else{
                $err_messages = "Server Error"; 
                return view('one.errors.errors', compact('err_messages'));
            }
        }
    }

知道如何解决这个问题吗?提前致谢!

标签: laravelcontrollerlaravel-controller

解决方案


您引用控制器的方式是错误的:

Route::get('/jobs', 'one\jobs\JobsController@index');

应该:

Route::get('/jobs', 'one\Jobs\JobsController@index');

J在控制器中使用了大写namespace字母j,但在web.php. 这些东西是区分大小写的,并且应该与psr-4自动加载的文件和文件夹的命名相匹配。


推荐阅读