【问题标题】:include class with autoload.php but getting class not found error包含带有 autoload.php 的类但获取类未找到错误
【发布时间】:2017-08-29 18:53:43
【问题描述】:

我尝试使用jasonmapper,就像手册中所写的那样。 我需要autoload.php 文件,当构造JasonMapper 对象时,我去类没有发现异常。

(1/1) FatalThrowableError
Class 'App\Http\Controllers\JsonMapper' not found

这是我的代码

namespace App\Http\Controllers;

require __dir__.'/../../../vendor/autoload.php';
use Illuminate\Http\Request;
use App\Http\Games\Numbers;

class ApiController extends Controller
{
    public function home()
    {
        $client = new \GuzzleHttp\Client();
        $res = $client->request(
          'GET',
          $testurl
        );
        $json = json_decode($res->getBody());
        $mapper = new JsonMapper();// error occurs at this line
        $numbers = $mapper->map($json, new Numbers());
        return json_encode($numbers);
    }
}

【问题讨论】:

标签: php laravel-5 composer-php


【解决方案1】:

如果您不在脚本顶部“使用”JsonMapper,PHP 会假定 JsonMapper 位于 App\Http\Controllers 命名空间中,但事实并非如此。这意味着在你的脚本中你必须:

$mapper = new \JsonMapper();

【讨论】:

  • 刚试过这个,得到“找不到类'JsonMapper'”错误。添加 \ 以某种方式解决了原始错误,但不知何故 JsonMapper 仍然没有找到。
  • 你是通过 Composer 安装 JsonMapper 的吗?如果没有,您可能需要对 composer.json 进行更改,然后运行 ​​composer dump-autoload。
猜你喜欢
  • 2015-11-25
  • 1970-01-01
  • 2016-04-28
  • 2021-08-14
  • 2012-01-19
  • 1970-01-01
  • 2018-09-21
  • 1970-01-01
  • 2018-09-06
相关资源
最近更新 更多