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  ·  7年前

目前 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'));
    }
}
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
最佳答案

提示你

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...

7年前 评论
巴啦啦小仙女 5年前
讨论数量: 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...

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

提示你

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...

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

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

7年前 评论

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

7年前 评论

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

5年前 评论

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

5年前 评论

缺了 use App\Models\User;

2年前 评论