Как реализовать абстрактный класс в laravel 5.3



Я следовал курсу Laracasts Api, и в какой-то момент я получаю эту ошибку



Whoops, looks like something went wrong.
ReflectionException in Container.php line 809:
Class AppAcmeTransformersLessonTransformer does not exist


Я создал абстрактный класс в приложении Acme TransformersTransformer.php



<?php

namespace AppAcmeTransformers;

abstract class Transformer {

//transformCollection the lessons data and return only requried fields
public function transformCollection($items) {

return array_map([$this, 'transform'], $items);

}


//transform the lessons data and return only requried fields of perticular id
public abstract function transform($item);

}


И appAcme TransformersLessonTransformer.php



<? php 

namespace AppAcmeTransformers;

class LessonTransformer extends Transformer {

public function transform($lesson) {

return [
'title' => $lesson['title'],
'body' => $lesson['body'],
'active' => (boolean) $lesson['completed']
];

}

}


А мой контроллер-это LessonsController.php



<?php

namespace AppHttpControllers;

use Applesson;
use Response;
use IlluminateHttpRequest;
use AppAcmeTransformersLessonTransformer;

class LessonsController extends Controller {

protected $lessonTransformer;

function __construct(LessonTransformer $lessonTransformer) {

$this->lessonTransformer = $lessonTransformer;

}

//fetch all and pass a metadata 'data'
public function index() {

$lessons = Lesson::all();

return Response::json([

'data' => $this->lessonTransformer->transform($lessons)

], 200);
}


//fetch by id
public function show($id) {

$lesson = Lesson::find($id);

if(! $lesson) {

return Response::json([
'error' => [
'message' => 'No Response Please Try Again'
]
], 404);
}

return Response::json([

'data' => $this->lessonTransformer->transform($lesson)

], 200);
}

}


Я не знаю, чего мне не хватает.
с нетерпением ждем столь необходимой помощи



Спасибо

706   1  

1 ответ:

Как видно из сообщения об ошибке, проблема не связана с абстрактным классом Transformer, он еще не смог достичь этого класса, потому что не смог найти класс LessonTransformer?

Class App\Acme\Transformers\LessonTransformer does not exist

Глядя на ваши классы, кажется, что все пространства имен хороши, и, если вы используете PSR4, нет необходимости выполнять composer dumpautoload, он найдет его автоматически.

Но ваш класс не найден, и обычно это происходит потому, что:

1) файл является неуместно (это в правильном реж.).

2) файл имеет неправильное имя.

3) у вас есть ошибка в файле и PHP не смог понять его как класс.

Comments

    Ничего не найдено.