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 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 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...

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年前 评论

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