0

我在挣扎,因为 Dingo 似乎只转换 Eloquent 集合和对象。我可以使用 Collection::make() 方法解决返回集合的问题。

但是怎么可能返回单个用户对象呢?(参见方法 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);
    }

}
4

1 回答 1

1

幸运的是,我现在找到了一个可行的解决方案。我想分享这个并希望能够帮助其他人:

    return $this->response->item($user, new UserTransformer());
于 2016-05-17T17:44:43.973 回答