Class App\Http\Controllers\User does not exist?

加入代码

Route::resource('users', 'UsersController');

访问页面 /users/1 报错:

ReflectionException
Class App\Http\Controllers\User does not exist

为何这个地方会去访问User这个控制器,按说不应该去访问UsersController对应的控制器吗?

而且如果直接访问/users页面,那么访问的控制器又是正常的。。。不知道这个地方是哪里没有写对吗?

附言 1  ·  5年前

目前web.php文件完整代码如下:

<?php

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
 */

Route::get('/', 'StaticPagesController@home');
Route::get('/home', 'StaticPagesController@home')->name('home');
Route::get('/about', 'StaticPagesController@about')->name('about');
Route::get('/help', 'StaticPagesController@help')->name('help');

Route::get('signup', 'UsersController@create')->name('sign');
Route::resource('users', 'UsersController');

UsersController代码如下:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UsersController extends Controller
{
    public function create()
    {
        return view('users.create');
    }

    public function show(User $user)
    {
        return view('users.show', compact('user'));
    }
}
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
最佳答案

提示你

Class App\Http\Controllers\User does not exist

那就看看show方法中是否是使用了User这个Class。

你的问题很可能是因为,UserController声明了命名空间App\Http\Controllers,然后在该控制器中直接使用了UserModel。


<?php

namespace App\Http\Controllers;

use App\Models\User;

·
·

在namespace 下面,添加上use App\Models\User;即可。

建议阅读一下PHP命名空间的基础知识。

http://php.net/manual/zh/language.namespac...

5年前 评论
巴啦啦小仙女 3年前
讨论数量: 8

提示你

Class App\Http\Controllers\User does not exist

那就看看show方法中是否是使用了User这个Class。

你的问题很可能是因为,UserController声明了命名空间App\Http\Controllers,然后在该控制器中直接使用了UserModel。


<?php

namespace App\Http\Controllers;

use App\Models\User;

·
·

在namespace 下面,添加上use App\Models\User;即可。

建议阅读一下PHP命名空间的基础知识。

http://php.net/manual/zh/language.namespac...

5年前 评论
巴啦啦小仙女 3年前

提示你

Class App\Http\Controllers\User does not exist

那就看看show方法中是否是使用了User这个Class。

你的问题很可能是因为,UserController声明了命名空间App\Http\Controllers,然后在该控制器中直接使用了UserModel。


<?php

namespace App\Http\Controllers;

use App\Models\User;

·
·

在namespace 下面,添加上use App\Models\User;即可。

建议阅读一下PHP命名空间的基础知识。

http://php.net/manual/zh/language.namespac...

5年前 评论
巴啦啦小仙女 3年前

@相惜恨离 蠢了蠢了,我以为是找错Controller了,才发现是User类没有导入。。。。

5年前 评论

@相惜恨离 正解,也遇到了同样的问题按照该方法解决

5年前 评论

为啥我的userController文件写了use App\Models\User;还是出现这个问题呢?仍然提示不存在

4年前 评论

我遇到同樣問題 也有加了use App\Models\User; 但還是不可以 ⋯⋯

3年前 评论

缺了 use App\Models\User;

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!