我在中创建了一个UserController
app/Http/Controllers/API/UserController.php
在UserController.php中,我有这个namespace AppHttpControllersAPI;
在api.php中,我有这个Route::apiResources(['user' => 'APIUserController']);
当我尝试显示路线列表时,我在下面得到了这个错误。
错误:目标类[App\Http\Controllers\UserController]没有存在
我们如何告诉LaravelUserController
在app/Http/Controllers/API?
内
您需要定义名称空间,这样laravel就可以找到控制器:
<?php
namespace AppHttpControllersAPI;
...
class UserController extends Controller {
您已经定义了名称空间为API
:的api.php
Route::apiResources(['user' => 'APIUserController']);
尝试清除路由缓存:
php artisan route:clear
php artisan optimize
您检查过指定的路径是否正确吗?您也可以检查UserController中的命名空间,对应于:namespace AppHttpControllersAPI
?
或者你也可以简单地在wep/api路由中添加控制器:
Route::get('prefix', 'DirOfYourControllerYourController@SomeFunction);
或者,正如文件中所述,您可以在这里查看:
https://laravel.com/docs/master/routing#route-组命名空间
这肯定是因为您的web.php
或api.php
文件之一
确保文件的命名空间在其中是正确的,例如Route::get('foo', 'APIUserController');
您只需要遵循两个步骤即可实现相同的目标:
步骤1:在UserController
中定义正确的名称空间,如下
namespace AppHttpControllersAPI;
步骤2:用web.php
中的目录名定义路由,例如
Route::get('dashboard', 'APIUserController@dashboard');