【问题标题】:Laravel ReflectionException in Controller控制器中的 Laravel 反射异常
【发布时间】:2017-03-24 12:14:12
【问题描述】:

我正在尝试使用下一个代码注入类 HotelsTransformer,但没有成功:

用户转换器

<?php 
namespace App\Transformers;

class UserTransformer extends Transformer
{
   ...
}

HotelsTransformer

<?php 
namespace App\Transformers;

class HotelsTransformer extends Transformer
{
   ...
}

ApiHotelsController

<?php 

namespace App\Http\Controllers\Api;

use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;

use \App\Hotel;
use \App\Transformers\HotelsTransformer;

class ApiHotelsController extends ApiController
{
   protected $HotelsTransformer;

   public function __construct(HotelsTransformer $HotelsTransformer)
   {
       $this->HotelsTransformer = $HotelsTransformer;
       dd($this->HotelsTransformer);
   }

当我注入 UserTransformer 时,一切正常,但是当我用 HotelsTransformer 更改 UserTransformer 时,它会抛出这个错误。

我不知道为什么会这样,因为我克隆了 UserTransformer 并更改了它的名称,但同样的错误仍然存​​在。

【问题讨论】:

  • 您是否使用命名空间检查了 HotelsTransformer 类的文件夹名称?否则它应该可以工作。

标签: php laravel namespaces laravel-5.2


【解决方案1】:

检查您的以下命名空间。可能是它不存在或命名空间路径不正确

use \App\Transformers\HotelsTransformer;

【讨论】:

  • 抱歉,我包含了命名空间,但粗体样式隐藏了它们。命名空间似乎没问题。
【解决方案2】:

尝试运行composer dumpauto 命令。

【讨论】:

    【解决方案3】:

    尝试从终端运行这些命令(从项目的根目录)

    // use sudo if it asks for the root permission
    composer update
    composer dump-autoload
    php artisan config:clear
    

    重新运行应用程序/项目并重试。

    这2个命令会刷新composer加载的类并清除缓存,让项目重新运行,希望对你有帮助!

    【讨论】:

      【解决方案4】:

      好的,我已经解决了,文件名错误,改了: app/Transformers/HotelsTransformer.php 到: app/Transformers/HotelsTransformer.php

      在这方面花了 1 小时,真是太棒了。

      【讨论】:

        猜你喜欢
        • 2016-03-21
        • 1970-01-01
        • 2018-04-15
        • 2015-11-08
        • 1970-01-01
        • 2017-06-18
        • 2018-04-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多