php 目标类[App\Http\Controllers\Api\V1\App\Http\Controllers\Api\V1\CustomerController]不存在,(使用apiResource函数-> laravel)[关闭]

hpxqektj  于 2023-05-16  发布在  PHP
关注(0)|答案(1)|浏览(130)

**关闭。**这个问题是not reproducible or was caused by typos。目前不接受答复。

此问题是由打印错误或无法再重现的问题引起的。虽然类似的问题可能是on-topic在这里,这一个是解决的方式不太可能帮助未来的读者。
23小时前关闭
Improve this question
我正在获取类[]不存在错误。

我在下面提供所有不同文件夹的代码:
api.php:

<?php

use App\Http\Controllers\Api\V1\CustomerController;
use App\Http\Controllers\Api\V1\InvoiceController;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;

Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
    return $request->user();
});

Route::group(['prefix' => 'v1', 'namespace' => 'App\Http\Controllers\Api\V1'], function(){
    Route::apiResource('customers', CustomerController::class);
    Route::apiResource('invoices', InvoiceController::class);
});

CustomerController.php

<?php
namespace App\Http\Controllers\Api\V1;
use App\Models\Customer;
use App\Http\Requests\StoreCustomerRequest;
use App\Http\Requests\UpdateCustomerRequest;
use App\Http\Controllers\Controller;
class CustomerController extends Controller
{
    public function index()
    {
        return Customer::all();
    }
}

我是一个laravel的初学者,我尝试了不同的解决方案来解决这个问题,但无法解决这个问题。请让我知道是否需要任何其他文件进行验证。

xjreopfe

xjreopfe1#

问题是,当我已经有了类的FQDN(完全限定域名)时,我指定了namespace,所以我最终得到了\App\Http\Controllers\Api\V1\App\Http\Controllers\Api\V1\CustomerController,而不是(例如)\App\Http\Controllers\Api\V1\CustomerController。因此,只需从路由声明中删除namespace,每次使用YourController::class(记住添加use)即可修复它。
Laravel改变了Laravel 8中路由的定义方式,从Route::xxxx('/homme', 'Controller@index')改为Route::xxxx('/homme', [Controller::class,'index'])
替换这个

Route::group(['prefix' => 'v1', 'namespace' => 'App\Http\Controllers\Api\V1'], function(){
    Route::apiResource('customers', CustomerController::class);
    Route::apiResource('invoices', InvoiceController::class);
});

用这个

Route::group(['prefix' => 'v1'], function(){
    Route::apiResource('customers', CustomerController::class);
    Route::apiResource('invoices', InvoiceController::class);
});

相关问题