2016-05-17 3 views
0

私はDingoがEloquentコレクションとオブジェクトだけを変換するように見えるので、私は苦闘しています。 Collection :: make()メソッドを使ってコレクションを返すことを解決できました。Laravelディンゴ/アピドクトリン

しかし、どのように単一のユーザーオブジェクトを返すことは可能ですか?(メソッドgetUser()を参照)

<?php 

namespace App\Http\Controllers; 

use App\Entities\User; 
use App\Transformer\UserTransformer; 
use Dingo\Api\Http\Response; 
use Dingo\Api\Routing\Helpers; 
use Doctrine\ORM\EntityManagerInterface; 
use App\Http\Requests; 
use Illuminate\Routing\Controller; 
use Illuminate\Support\Collection; 

class UsersController extends Controller 
{ 
    use Helpers; 

    protected $em; 

    /** 
    * UsersController constructor. 
    * @param $em 
    */ 
    public function __construct(EntityManagerInterface $em) 
    { 
     $this->em = $em; 
    } 

    public function getUser($id) 
    { 
     $user = $this->em->getRepository(User::class)->findOneBy(array('id' => $id)); 

     return $user; 
    } 


    public function getUsers() 
    { 
     $user = $this->em->getRepository(User::class)->findAll(); 

     return $this->response->collection(Collection::make($user), new UserTransformer); 
    } 

} 

答えて

1

幸いにも私は実用的な解決策を見つけました。私はこれを共有し、他の人を助けることを望みます:

return $this->response->item($user, new UserTransformer());