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
页面,那么访问的控制器又是正常的。。。不知道这个地方是哪里没有写对吗?
目前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'));
}
}
提示你
那就看看
show
方法中是否是使用了User
这个Class。你的问题很可能是因为,
UserController
声明了命名空间App\Http\Controllers
,然后在该控制器中直接使用了User
Model。在namespace 下面,添加上
use App\Models\User;
即可。建议阅读一下PHP命名空间的基础知识。
http://php.net/manual/zh/language.namespac...