2015-12-10 2 views
0

в App/Рефераты/папки Я следующий файлКак реализовать абстрактный класс в Laravel 5

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

Благодарности

ответ

1

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

Вместо:

use App\Abstracts\eventsTransformer; 

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

use App\Abstracts\EventTransformer; 

в вашем EventsapiController

Смежные вопросы