[英]Laravel Dingo/Api Doctrine
我之所以努力,是因为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);
}
}
幸运的是,我现在找到了一个可行的解决方案。 我想分享这一点,并希望能够帮助其他人:
return $this->response->item($user, new UserTransformer());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.