Laravel:未找到扩展控制器

Laravel : Extends Controller not found

尝试获取数据时 returns 通过转换器获取数据时出现错误 Class 'App\Api\V1\Controllers\Auth\ApiController' not found。使用 ApiController 到 extends.I 将 APIcontroller 放入 App\Api\V1\Controllers\Front 文件夹。

LoginController 代码并将其扩展为 ApiController:

<?php

namespace App\Api\V1\Controllers\Auth;

use Auth;
use Carbon\Carbon;
use Tymon\JWTAuth\JWTAuth;
use App\Http\Controllers\Controller;
use App\Api\V1\Requests\LoginRequest;
use Tymon\JWTAuth\Exceptions\JWTException;
use Symfony\Component\HttpKernel\Exception\HttpException;
use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException;
use App\User;
use App\UserDeviceData;
use Illuminate\Http\Request;
use App\Transformers\UserTransformer;

class LoginController extends ApiController // extends to API controller
{
    public function login(LoginRequest $request, JWTAuth $JWTAuth)
    {
        $credentials = $request->only(['email', 'password']);
        try {
            $token = Auth::guard()->attempt($credentials);
            if(!$token) {
                return response()->json([
                    'message' => "Email and password do not match",
                    'status_code' => 403,
                ]);
            }

            $user = Auth::user();
            $user->last_login = Carbon::now();
            $user->save();

            $user = Auth::user();
            $user->UserDeviceData()->firstOrCreate([
                'device_id' => $request->device_id
            ]);


        } catch (JWTException $e) {
            return response()->json([
                'message' => "Internal server error",
                'status_code' => 500,
            ]);
        }
        return $this->response->collection($user, new UserTransformer);
    }
}

Api 控制器代码:并设置 namespace App\Api\V1\Controllers\Front;

<?php

namespace App\Api\V1\Controllers\Front;

use App\Support\Response;
use App\Support\Parameters;

abstract class ApiController extends Controller
{

    protected $response;
    protected $parameters;

    public function __construct(Response $response, Parameters $parameters)
    {
        $this->response = $response;
        $this->parameters = $parameters;
    }
}

我的代码有什么问题?

由于 ApiControllerLoginController 使用不同的命名空间,您需要 use 您的 ApiControllerLoginController.

use App\Api\V1\Controllers\Front\ApiController;

您还忘记了 use ControllerApiController:

use App\Http\Controllers\Controller;