問題。 私は(私のコントローラ内の)別の名前空間からクラスオブジェクトをインスタンス化するとき、私はこのエラーを取得:Laravelが名前空間でクラスを見つけることができません
ReflectionException in Container.php line 794:
Class App\Library\Transformers\LessonTransformer does not exist
任意のアイデア間違っている可能性が何?
のApp \のHttp \コントローラ\ LessonsController.php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use App\Library\Transformers\Transformer;
use App\Library\Transformers\LessonTransformer;
use App\Http\Requests;
use App\Lesson;
class LessonsController extends Controller{
protected $lessonTransformer;
function __construct(LessonTransformers $lessonTransformer)
{
$this->lessonTransformer = $lessonTransformer;
}
//
public function index()
{
$lessons = Lesson::all();
return Response()->json([
'data' => $this->lessonTransformer->transformCollection($lessons->all())
], 200);
}
public function show($id)
{
$lesson = Lesson::find($id);
if (! $lesson)
{
return Response()->json([
'error' => [
'message' => 'Lesson does not exist'
]
], 404);
}
} }
のApp \ライブラリ\トランスフォーマー\ LessonTransformer
<?php
namespace App\Library\Transformers;
public class LessonTransformer extends Transformer {
public function transform($lesson)
{
return [
'title' => $lesson['title'],
'body' => $lesson['body'],
'active' => (boolean) $lesson['some_bool']
];
}
}
のApp \ライブラリ\トランスフォーマー\トランスフォーマー
<?php
namespace App\Library\Transformers;
public abstract class Transformer {
public function transformCollection(array $item)
{
return array_map([$this, 'transform'], $item->toArray());
}
public abstract function transform($item);
}
Composer.json
また、私は成功せず、次のようにcomposer.json変更しようとしています
"autoload": {
"classmap": [
"database",
"App/Library"
],
"psr-4": {
"App\\": "app/"
}
},
"autoload-dev": {
"classmap": [
"tests/TestCase.php",
"App/Library"
]
},
追記が。 私はLaravel 5.2を使用しています。
あなたがしていることがわからない限り、作曲者ファイルを変更しないでください。変更を元に戻してください。 – Jonathan
Okey。私はそれらの変更を元に戻そうとしましたが、まだ変更はありませんでした。 – Olof84
あなたのコンストラクタにわずかなタイプミスがあります。 'LessonTransformers'に' s'がついていてはいけませんか?しかし、これがエラーを説明するとは思わない。 – Jonathan