- 我使用 Laravel 和 Dingo/Api 来构建一个 RESTful API ( https://github.com/dingo/api )
- 我使用 Doctrine2 而不是 Eloquent ORM ( https://github.com/laravel-doctrine/orm )
- 实体是从 XML-Annotations 生成的
我在挣扎,因为 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);
}
}