我的目標是返回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
你可以從屏幕上看到拍攝「attr ibute「和其他類似的領域沒有被填充...
所以我的問題是這樣的:我如何確保連接表填充飼料?
嘿你有這個解決方案嗎? –
@JimitShah我回答了這個問題。這可能對您有所幫助。 – Wilt