【发布时间】:2018-04-22 05:20:32
【问题描述】:
我正在使用 Laravel 5.5。我在工作区的 App 文件夹中添加了一个自定义目录。所以,文件夹结构是:
App\Bishwa\Transformers里面有两个PHP文件:
- Transformer.php
- LessonTransformer.php
这些文件如下所示:
-
Transformer.php
<?php namespace Bishwa; abstract class Transformer { public function transformCollection(array $items){ return array_map([$this, 'transform'], $items); } public abstract function transform($item); } -
LessonTransformer.php
<?php namespace Bishwa; class LessonTransformer extends Transformer { public function transform($lesson){ return [ 'title' => $lesson['title'], 'body' => $lesson['body'], 'active' => (boolean)$lesson['some_bool'] ]; } }
然后在 LessonsController.php 里面我有以下内容:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Response;
use App\Lesson;
use Bishwa\LessonTransformer;
class LessonsController extends Controller
{
protected $lessonTransformer;
function __construct(LessonTransformer $lessonTransformer){
dd('ok');
}
在运行控制器的动作时,它给了我一条错误消息:
Reflection Exception: Class Bishwa\LessonTransformer does not exist
我已经尝试过composer dump-autoload,再次重新启动服务器,但都没有帮助。我在命名空间时做错了吗?
【问题讨论】:
-
您是否已将命名空间添加到
composer.json中的自动加载器中? -
谢谢你.. 这是我的愚蠢错误:D
标签: php laravel namespaces