簡體   English   中英

Laravel 8 控制器子文件夾路由問題“找不到類 'App\Http\Controllers\APIControllers\Controller'”

[英]Laravel 8 Controllers Subfolder routing issues "Class 'App\Http\Controllers\APIControllers\Controller' not found"

我是 laravel 8 框架的新手,我正在處理控制器子文件夾,但我無法訪問我的 Controller 文件。 我正在訪問的 Controller 位於 Controllers/APIControllers 文件夾中,名稱為 LoginController.php 路徑是 Controllers/APIControllers/LoginController

請幫助我找到最佳解決方案。

下面是我的代碼。

api.php


    <?php
    
    use Illuminate\Http\Request;
    use Illuminate\Support\Facades\Route;
    use App\Http\Controllers;
    use App\Http\Controllers\APIControllers\LoginController;
    
    
    Route::middleware('auth:api')->get('/user', function (Request $request) {
        return $request->user();
    });
    
    Route::get('login',[LoginController::class, 'LoginPage']);

登錄控制器.php


    <?php
    use App\Http\Controllers;
    use Illuminate\Http\Request;
    namespace App\Http\Controllers\APIControllers;
    
    class LoginController extends Controller
    {
        public function LoginPage()
        {
            return ["name"=>"test"];
        }
    }

在您的 LoginController 中有一個錯誤,指的是擴展的 Controller class:

    <?php
    use App\Http\Controllers;
    use Illuminate\Http\Request;
    namespace App\Http\Controllers\APIControllers;
    
    class LoginController extends Controller
    {
        public function LoginPage()
        {
            return ["name"=>"test"];
        }
    }

引用 Controller class 的頂行應該是:

    <?php
    use App\Http\Controllers\Controller;
    use Illuminate\Http\Request;
    namespace App\Http\Controllers\APIControllers;
    
    class LoginController extends Controller
    {
        public function LoginPage()
        {
            return ["name"=>"test"];
        }
    }

將此添加到您的 LoginController 的 header 的第一個頂部

<?php
namespace App\Http\Controllers\APIControllers;
use App\Http\Controllers\Controller;

在此之后添加其他代碼,然后進行硬刷新和檢查。

您在某些代碼行之后編寫了命名空間; 現在在 <?php 行之后移動命名空間。

像下面

namespace App\Http\Controllers\APIControllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;

在此之后,它的工作完美。

您的命名空間應該在 controller 內的 php 標記之后。 然后寫下你的導入行。 您的 controller class 也存在問題 - 應該是這樣的:

<?php
namespace App\Http\Controllers\APIControllers;`enter code here`
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;

class LoginController extends Controller
{
    public function LoginPage()
    {
        return ["name"=>"test"];
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM