目标 class [用户] 不存在。 - Laravel

Target class [User] does not exist. - Laravel

我正在学习laravel。我尝试了很多次,但我没有发现我的用户有什么问题 controller.Please 查看代码并帮助我解决问题。

Illuminate\Contracts\Container\BindingResolutionException Target class [User] does not exist.

web.php 文件

<?php
use Illuminate\Support\Facades\Route;
                
                
Route::get('/', function () {
    return view('welcome');
    //return redirect('sample');
});

// Route::get('sample/{id}',function($id){
//     echo $id;
//     return view('sample');
// });

// Route::view('sample','sample');
// Route::redirect('youtube','sample');

Route::get('users','User@index');
Route::get('show','User@show');
        

这是我的控制器

 <?php
    
    namespace App\Http\Controllers;
    
    use Illuminate\Http\Request;
    
    class User extends Controller
    {
        //
        function index()
        {
            return ['name' => 'Abhishek'];
        }
        function show()
        {
            echo "Hello controller";
        }
    }



 

您需要用户模型。如果您已经创建,请确保您的 UserController 具有

use App\Models\User;

在顶部。顺便说一句,正如我所注意到的,您的控制器名称是 User。这是不好的做法。遵循 Laravrel 的命名约定不是必须的,但它可以让你免于很多麻烦。 User 应为模型名称,UserController 应为控制器名称。

laravel 8路线已更改

你应该这样声明路由

你有 3 个喜欢它...

  • 1

Route::get('user','App\Http\Controllers\User@index');

  • 2

use App\Http\Controllers\User;


Route::get('user',[User::class,'index']);


  • 3

如果你不想改变路线,看看RouteServiceProvider并改变, 将 $this->namespace=null; 更改为 $this->namespace='App\Http\Controllers'; https://github.com/laravel/laravel/blob/master/app/Providers/RouteServiceProvider.php

$this->namespace=null; //laravel 8

protected $namespace = 'App\Http\Controllers'; //previous laravel version

relevate line