【问题标题】:Laravel Dingo class does not existLaravel Dingo 类不存在
【发布时间】:2021-02-03 22:17:56
【问题描述】:

我在 api.php 上有使用 Dingo 函数的代码,但我无法调用控制器,因为它总是声明未找到控制器,即使在他们的文档中明确指定我必须将完整我在其中做了什么的控制器的路径。

<?php

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;

// use Dingo\Api\Contract\Http\Request;
// use Dingo\Api\Facade\Route;

/*
|--------------------------------------------------------------------------
| API Routes
|--------------------------------------------------------------------------
|
| Here is where you can register API routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| is assigned the "api" middleware group. Enjoy building your API!
|
*/

$api = app('Dingo\Api\Routing\Router');
$api->version('v1', function ($api) {

    // This Will Work
    // $api->get('hello', function() {
    //     return "hi";
    // });
    
    // Will not work
    $api->get('hello', 'App\\Api\Controllers\\TestController@index');
    $api->get('hi','App\\Http\\Controllers\\TestController@index');
});

Route::middleware('auth:api')->get('/user', function (Request $request) {
    return $request->user();
});

文件位置:

错误信息:Error Message: message: "Target class [app\Http\Controllers\TestController] does not exist.", status_code: 500,

你认为我在这里缺少什么?

【问题讨论】:

    标签: laravel dingo-api


    【解决方案1】:

    在引用文件时,大小写确实很重要。我最近才发现这个。

    hello 路由内部

    namespace app\Api\Controllers;
    
    use Dingo\Api\Http\Request;
    use app\Http\Controllers\Controller;
    
    class TestController extends Controller
    {
        public function index(Request $request)
        {
            return "hi";
        }
    }
    

    必须将app\Http\.. 更改为App\Http\...
    在 Api.php 控制器路径上也做了同样的事情
    只是提醒一下,当您尝试在 vscode 上使用“复制相对路径”时,请注意不要使用命名约定。

    【讨论】:

      猜你喜欢
      • 2016-07-22
      • 2016-03-07
      • 1970-01-01
      • 2020-12-02
      • 1970-01-01
      • 1970-01-01
      • 2018-06-17
      • 2018-02-24
      • 2017-12-07
      相关资源
      最近更新 更多