लक्ष्य वर्ग [Api \ UserController] मौजूद नहीं है

Nov 24 2020

php कारीगर मार्ग का उपयोग करने के बाद Laravel 8 में यह त्रुटि हो रही है: सूची:

प्रबुद्ध \ संविदा \ कंटेनर \ BindingResolutionException लक्ष्य वर्ग [Api \ UserController] मौजूद नहीं है।

मेरे पास App \ Http \ Controllers \ Api में एक नियंत्रक है:

<?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);
    }
}

मार्ग / api.php:

<?php

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\Api\UserController;

Route::get('users', 'Api\\UserController@index');

लारवेल में Im नया

जवाब

3 Donkarnash Nov 24 2020 at 06:45

चूंकि आप use App\Http\Controllers\Api\UserControllerनाम स्थान कथन का आयात कर रहे हैं, इसलिए आप ::classनियंत्रक वर्ग के लिए अंकन का उपयोग कर सकते हैं । इसमें अतिरिक्त लाभ भी होंगे क्योंकि IDE स्ट्रिंग के विपरीत पथ पर नेविगेट करने में सक्षम होगा

Laravel 8 के बाद से, मुझे लगता है कि डिफ़ॉल्ट नाम स्थान अब App\Http\Controllersरूटसर्वरप्रोवाइडर में परिभाषित नहीं किया गया है , बल्कि यह वांछित मूल्य के साथ $ नाम स्थान की संपत्ति सेट करके डिफ़ॉल्ट नाम स्थान को परिभाषित करने के लिए डेवलपर के ऊपर छोड़ दिया गया है।

<?php

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\Api\UserController;

Route::get('users', [UserController::class, 'index']);
MuditGulgulia Nov 24 2020 at 12:33

लार्वा 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);
    }
}

api.php:

<?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']);

मार्ग के लिए दस्तावेज़