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

时间:2020-10-10 17:02:32

标签: php laravel laravel-8

我正在学习laravel。我尝试了很多次,但是在我的用户控制器中没发现什么问题。请仔细阅读代码,为我提供帮助。

Illuminate \ Contracts \ Container \ BindingResolutionException目标类 [用户]不存在。

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";
        }
    }



 

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:-1)

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

use App\Models\User;

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