问题。 当我从另一个命名空间(在我的控制器中)实例化一个类对象时,我得到了这个错误:
ReflectionException in Container.php line 794:
Class App\Library\Transformers\LessonTransformer does not exist
任何想法都可能出错?
应用\ 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);
}
} }
应用\库\变压器\ 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']
];
}
}
应用\库\变压器\变压器
<?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。