【问题标题】:Laravel: "$ php artisan route:list" does not show route list in App\Http\Controllers\APILaravel:“$ php artisan route:list”在 App\Http\Controllers\API 中不显示路由列表
【发布时间】:2020-06-13 03:36:44
【问题描述】:

我在里面创建了一个UserController

app/Http/Controllers/API/UserController.php

在 UserController.php 里面我有这个
namespace App\Http\Controllers\API;

在 api.php 里面我有这个
Route::apiResources(['user' => 'API\UserController']);

当我尝试显示路线列表时,出现以下错误。

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

我们如何告诉 Laravel UserControllerapp/Http/Controllers/API? 内部

【问题讨论】:

  • Route::apiResources 究竟会做什么?
  • "您可以通过将数组传递给apiResources 方法来一次注册多个API 资源控制器:"参考:link
  • 感谢大家的回复。我很感激。事实证明,我在 web.php Route::get('/users', 'UserController@index')->name('user'); 中创建了另一条路线导致错误。在我删除那行之后,route:list 终于显示出来了。

标签: laravel api vue.js


【解决方案1】:

你需要定义命名空间,这样laravel才能找到控制器:

<?php
namespace App\Http\Controllers\API;
...
class UserController extends Controller {

你已经定义了命名空间API的api.php:

Route::apiResources(['user' => 'API\UserController']);

尝试清除路由缓存:

php artisan route:clear
php artisan optimize

【讨论】:

  • 感谢您花时间回答。我在哪里定义命名空间?
  • 在你的 UserController.php 中
  • 我查了一下,Laravel 已经自动把命名空间放在那里了。我看到了这个namespace App\Http\Controllers\API;
  • @NoOne Laravel 已经放了App\Http\Controllers 而没有API,所以会出现错误。确保命名空间中有API
  • 谢谢你。这很有帮助。
【解决方案2】:

您是否检查过您指定的路径是否正确? 您还可以检查 UserController 中的命名空间,对应于: namespace App\Http\Controllers\API?

或者您也可以简单地在 wep / api 路由中添加控制器:

Route::get('prefix', 'DirOfYourController\YourController@SomeFunction);

或者如文档中所述,您可以在此处查看:

https://laravel.com/docs/master/routing#route-group-namespaces

【讨论】:

    【解决方案3】:

    这绝对是因为您的 web.phpapi.php 文件之一
    确保文件的命名空间在其中是正确的,例如
    Route::get('foo', 'API\UserController');

    【讨论】:

      【解决方案4】:

      您只需执行 2 个步骤即可达到相同的效果:

      第一步:UserController 中定义正确的名称空间,如下所示

      namespace App\Http\Controllers\API;
      

      第2步:web.php中使用目录名称定义路由,例如。

       Route::get('dashboard', 'API\UserController@dashboard');
      

      【讨论】:

      • 感谢您的回复。在 UserController 我有这个 namespace App\Http\Controllers\API; 然后在 api.php 我有这个 Route::apiResources(['user' =&gt; 'API\UserController']);
      猜你喜欢
      • 2020-12-18
      • 1970-01-01
      • 2020-01-11
      • 1970-01-01
      • 1970-01-01
      • 2017-05-01
      • 2015-07-12
      • 2018-07-01
      • 2019-05-01
      相关资源
      最近更新 更多