Laravel 流明反射异常

Posted

技术标签:

【中文标题】Laravel 流明反射异常【英文标题】:Laravel Lumen ReflectionException 【发布时间】:2017-06-18 09:34:38 【问题描述】:

我已经看过其他关于如何修复 laravel Lumen 中的 ReflectionException 问题的帖子,使用这个:

 $request = Illuminate\Http\Request::capture();
 $app->run($request);

但是它并没有解决我的问题。我有一个名为 AccountController.php 的控制器并放置在 app/Http/Controllers/Account 文件夹中,代码如下:

<?php

namespace App\Http\Controllers\Account;

use App\Account;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;


class AccountController extends Controller 

public function createNewAccount(Request $request) 
    $newAccount = Account::create($request->all());
    return response()->json($newAccount);
    

这是我放置在 /routes/web.php 中的路由文件:

<?php

$app->get('/hello', function () use ($app) 
    return 'Hello World!';
);


$app->group(['prefix' => 'api/v1','namespace' => 'App\Http\Controllers\Account'], function($app)

    $app->post('account','AccountController@createNewAccount');
);

当我使用 Postman 进行测试时,返回简单“Hello World”的 get 请求工作正常,但对 api/v1/account/createNewAccount 的 POST 调用无论我做什么都会失败:

Container.php 第 681 行中的反射异常: 类 App\Http\Controllers\App\Http\Controllers\Account\AccountController 不存在 在 Container.php 第 681 行 在 Container.php 第 681 行中的 ReflectionClass->__construct('App\Http\Controllers\App\Http\Controllers\Account\AccountController') 在 Container->build('App\Http\Controllers\App\Http\Controllers\Account\AccountController') 在 Container.php 行 565 在 Application.php 第 208 行中的 Container->make('App\Http\Controllers\App\Http\Controllers\Account\AccountController') 在 RoutesRequests.php 第 677 行中的 Application->make('App\Http\Controllers\App\Http\Controllers\Account\AccountController') 在 RoutesRequests.php 第 644 行中的 Application->callControllerAction(array(true, array('uses' => 'App\Http\Controllers\App\Http\Controllers\Account\AccountController@createNewAccount'), array())) 在 RoutesRequests.php 第 629 行中的 Application->callActionOnArrayBasedRoute(array(true, array('uses' => 'App\Http\Controllers\App\Http\Controllers\Account\AccountController@createNewAccount'), array())) 在 RoutesRequests.php 第 528 行中的 Application->handleFoundRoute(array(true, array('uses' => 'App\Http\Controllers\App\Http\Controllers\Account\AccountController@createNewAccount'), array())) 在 RoutesRequests.php 第 782 行中的 Application->Laravel\Lumen\Concernsclosure() 在 RoutesRequests.php 第 534 行中的 Application->sendThroughPipeline(array(), object(Closure)) 在 RoutesRequests.php 第 475 行中的 Application->dispatch(object(Request)) 在 index.php 第 29 行中的 Application->run(object(Request))

我正在使用“laravel/lumen-framework”:“5.4.*”。

【问题讨论】:

【参考方案1】:

没有回复这个特定的问题,我决定用 Dingo API 构建我的 API:https://github.com/dingo/api 这是一个用 Laravel/lumen 构建 API 的好包。他们创建了自己的路由系统,从那以后一切都变得更好了。

【讨论】:

以上是关于Laravel 流明反射异常的主要内容,如果未能解决你的问题,请参考以下文章

使用外部 Laravel 护照流明 api 进行 Laravel 客户端身份验证

Laravel 验证唯一规则反射类异常

Laravel/流明 |未能分发事件

在流明中包括 laravel 5 包

将 laravel 应用程序转换为流明

Laravel 流明版本控制