Hedef sınıf [Api \ UserController] mevcut değil
php artisan rotasını kullandıktan sonra Laravel 8'de bu hatayı alıyorum: liste:
Illuminate \ Contracts \ Container \ BindingResolutionException Hedef sınıfı [Api \ UserController] mevcut değil.
App \ Http \ Controllers \ Api'de bir denetleyicim var:
<?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);
}
}
yollar / api.php:
<?php
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\Api\UserController;
Route::get('users', 'Api\\UserController@index');
Laravel'de yeniyim
Yanıtlar
Ad use App\Http\Controllers\Api\UserControlleralanı ifadesini içe ::classaktardığınızdan, denetleyici sınıfı için gösterimi kullanabilirsiniz . IDE, dizeden farklı olarak yola gidebileceği için ek faydalar da sağlayacaktır.
Laravel 8'den beri, varsayılan ad alanının artık App\Http\ControllersRouteServiceProvider'da tanımlanmadığını tahmin ediyorum, bunun yerine $ namespace özelliğini istenen değerle ayarlayarak varsayılan ad alanını tanımlamak geliştiriciye bırakılıyor.
<?php
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\Api\UserController;
Route::get('users', [UserController::class, 'index']);
Larvel 8'de daha önce yaptığımız gibi rota çizemezsiniz, bir sonraki sözdizimi şudur:
Denetleyici:
<?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);
}
}
api.php:
<?php
use Illuminate\Support\Facades\Route;
Route::get('users', '\App\Http\Controllers\Api\UserController@index');
Veya
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\Api\UserController;
Route::get('/Pages', [UserController::class, 'index']);
Yönlendirme için Dokümanlar