1
我需要使用Document
模型返回完整響應。我有迴應,但缺少一些實體定義的領域。例如,我需要回應「廣告系列」和「模板」屬性 - 但實際上「廣告系列」不存在。控制器不會返回Symfony 2中的OneToMany關係字段
下面是我的控制器和實體。
我有我的控制器,這樣的行動:
/**
* @REST\View(serializerGroups={"Default", "DocumentDetails"})
* @REST\Get("/{id}", requirements={"id" = "\d+"})
* @ParamConverter("document", class="AppBundle:Document");
*/
public function showAction(Request $request, Document $document)
{
return $document;
}
但文檔實體有關係:
/**
* Document entity
*
* @ORM\Entity(repositoryClass="AppBundle\Repository\DocumentRepository")
* @ORM\Table(name="document")
* @ORM\HasLifecycleCallbacks()
*
* @Serializer\ExclusionPolicy("all")
*/
class Document
{
.......
/**
* @var campaign
* @ORM\ManyToOne(targetEntity="Campaign", inversedBy="documents")
* @ORM\JoinColumn(name="campaign", referencedColumnName="id")
*
* @Serializer\Expose()
*/
protected $campaign; // **THIS FIELD IS ABSENT - WHY !???**
/**
* @var DocumentTemplate Szablon dokumentu
*
* @ORM\ManyToOne(targetEntity="DocumentTemplate")
* @ORM\JoinColumn(name="template_id", referencedColumnName="id")
*
* @Serializer\Expose()
*/
protected $template; // **THIS PROPERTY IS DISPLAYED**
.......
$document->template
出現在$文件的響應。但$document->campaign
缺席。哪裏不對 ?可能它與serializerGroups
有某種關係?謝謝你的幫助。
你確定'campaign'不是null嗎? – PizzaLover
是的,在數據庫中它被設置爲與現有Campaign相關的有效ID號碼。 – Lexxusss
你有getter/setters嗎?如果您正在獲取模板而不是Campaign,則代碼中會出現錯誤。 – MEmerson