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

в папке App / Abstracts / у меня есть следующий файл

1.Transformer.php

<?php

namespace App\Abstracts;

use eventsTransformer;


abstract class Transformer
{


public function transformCollection(array $item)
{
return array_map([$this ,'transform'],$item->toArray());
}

public abstract function transform($event);

}

2.eventsTransformer

<?php

namespace App\Abstracts;


class EventTransformer extends Transformer
{


public function transform($event)
{


return [
'event'=> $event['event'],
'date' => $event['date'],
'e_code'=> $event['eventcode'],
'country'=> $event['country'],
'city'=> $event['city']
];

}

}

Теперь в моем контроллере я использую их вот так

<?php

namespace App\Http\Controllers;
use Illuminate\Routing\ResponseFactory;
use App\Abstracts\eventsTransformer;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use App\Event;

class EventsapiController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/


//use EventTransformer;
protected $eventTransformer;

public function __construct(EventTransformer $EventTransformer){

$this->$eventTransformer = $EventTransformer; // replace 'collector' with whatever role you need.
}


public function index()
{
//
$events =  Event::All();
$response = array();

return response()->json([

'data'=>$this->eventTransformer->transform($events)

],200);

//return $response['data']=$events;

}

/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
//
}

/**
* Store a newly created resource in storage.
*
* @param  \Illuminate\Http\Request  $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
//
}

/**
* Display the specified resource.
*
* @param  int  $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//
$event = Event::find($id);

if(!$event)
{
return response()->json([

'error'=> 'Event does not exist',
'code' => 'e101'
],404);
}

return response()->json([

'data'=>$event->toArray()

],200);
}

/**
* Show the form for editing the specified resource.
*
* @param  int  $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
//
}

/**
* Update the specified resource in storage.
*
* @param  \Illuminate\Http\Request  $request
* @param  int  $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
//
}

/**
* Remove the specified resource from storage.
*
* @param  int  $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
//
}


}

Я получаю следующую ошибку

ReflectionException in Container.php line 790: Class App\Http\Controllers\EventTransformer does not exist

Может ли кто-нибудь помочь мне с этим

MyQuestion — это то же, что и Как включить реферат в Laravel5

Спасибо

0

Решение

Вы получаете эту ошибку, потому что вы неправильно написали пространство имен.

Вместо:

use App\Abstracts\eventsTransformer;

вы должны использовать:

use App\Abstracts\EventTransformer;

в вашем EventsapiController

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]