Моя цель - вернуть пользовательскую коллекцию для запроса findAll()
и доставить это до HAL, чтобы обеспечить корректную отформатировку его _links
. Первоначально я думал, что просто буду делать это программно, но это, кажется, неправильный способ сделать это.ApiGility - возврат пользовательских коллекций
Проблема, с которой я сталкиваюсь, состоит в том, что требуемые данные не из одной таблицы, а из нескольких таблиц (объединений), и я не могу решить, как это сделать должным образом.
У меня есть следующие объекты:
камень лицо: Стандартный стол с объединения по некоторым признакам, которые я хотел бы вернуться в моем канале
/**
* @var integer
*
* @ORM\Column(name="id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @ORM\ManyToMany(targetEntity="Stone\Entity\StAttribute")
* @ORM\JoinTable(name="st_stone_attribute",
* joinColumns={@ORM\JoinColumn(name="stone_id", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="attribute_id", referencedColumnName="id")}
*)
*
* @var Collection
* @access private
*/
private $attribute;
/**
* @var string
*
* @ORM\Column(name="name", type="string", length=50, nullable=false)
*/
private $name;
etc...
Субъект атрибута является стандартным таблица:
/**
* @var integer
*
* @ORM\Column(name="id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="name", type="string", length=30, nullable=false)
*/
private $name;
Мои ресурсные вызовы:
public function fetchAll($params = array())
{
return $this->stoneMapper->fetchAll();
}
Мой файл картографа:
public function fetchAll()
{
$qb = $this->stoneRepository->createQueryBuilder('u')
->where('u.state=:state')
->setParameter('state' , 1);
$adapter = new DoctrineAdapter(new ORMPaginator($qb));
$collection = new StoneCollection($adapter);
return $collection;
}
Моя коллекция
use Zend\Paginator\Paginator;
class StoneCollection extends Paginator
{
}
Снимок экрана результатов здесь: http://screencast.com/t/vgm34s92dsk2
Как вы можете видеть на экране выстрел "атр ibute "и другие подобные поля не заполняются ...
Итак, мой вопрос заключается в следующем: как обеспечить, чтобы таблицы объединений были заполнены в фиде?
эй, у тебя есть решение для этого? –
@JimitShah Я ответил на вопрос. Это может быть полезно для вас. – Wilt