Php 目标类[Api\UserController]不存在
使用php artisan route:list后,我在Laravel 8中遇到此错误: Illumb\Contracts\Container\BindingResolutionException 目标类[Api\UserController]不存在 我在App\Http\Controllers\Api中有一个控制器:Php 目标类[Api\UserController]不存在,php,laravel,Php,Laravel,使用php artisan route:list后,我在Laravel 8中遇到此错误: Illumb\Contracts\Container\BindingResolutionException 目标类[Api\UserController]不存在 我在App\Http\Controllers\Api中有一个控制器: <?php namespace App\Http\Controllers\Api; use App\Http\Controllers\Controller; use I
<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class UserController extends Controller
{
public function index()
{
$users = User::all();
return responde()->json($users);
}
}
由于要导入使用App\Http\Controllers\Api\UserController
名称空间语句,因此可以使用::class
符号表示控制器类。它还将有额外的好处,因为IDE将能够导航到不同于字符串的路径
自Laravel 8以来,我猜RouteServiceProvider中不再将默认名称空间定义为App\Http\Controllers
,而是由开发人员通过将$namespace属性设置为所需值来定义默认名称空间
在Larvel 8上,您不能像以前那样编写路由,下一个语法是
控制器:
<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
user App\Models\User;
class UserController extends Controller
{
public function index()
{
$users = User::all();
return responde()->json($users);
}
}
<?php
use Illuminate\Support\Facades\Route;
Route::get('users', '\App\Http\Controllers\Api\UserController@index');
您可能需要从终端运行composer dump autoload
来刷新autoloder。
<?php
use Illuminate\Support\Facades\Route;
Route::get('users', '\App\Http\Controllers\Api\UserController@index');
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\Api\UserController;
Route::get('/Pages', [UserController::class, 'index']);