拉拉维尔:"$php-artisan路由:列表;在App\Http\Controllers\nenene



我在中创建了一个UserController

app/Http/Controllers/API/UserController.php

在UserController.php中,我有这个
namespace AppHttpControllersAPI;

在api.php中,我有这个
Route::apiResources(['user' => 'APIUserController']);

当我尝试显示路线列表时,我在下面得到了这个错误。

错误:目标类[App\Http\Controllers\UserController]没有存在

我们如何告诉LaravelUserControllerapp/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.phpapi.php文件之一
确保文件的命名空间在其中是正确的,例如
Route::get('foo', 'APIUserController');

您只需要遵循两个步骤即可实现相同的目标:

步骤1:UserController中定义正确的名称空间,如下

namespace AppHttpControllersAPI;

步骤2:web.php中的目录名定义路由,例如

Route::get('dashboard', 'APIUserController@dashboard');

最新更新