在我正在开发公司的REST API中,父公司的父属性也属于公司类。
这样我可以创建三个公司。公司有一个母公司(公司类),可以多个子公司(收藏)
/**
* @ORM\ManyToOne(targetEntity="Company", inversedBy="child")
* @Expose()
*/
protected $parent;
/**
* @ORM\OneToMany(targetEntity="Company", mappedBy="parent")
*/
protected $child;
public function __construct()
{
...
$this->child = new \Doctrine\Common\Collections\ArrayCollection();
}
我如何去做和消除父母和子女公司之间的关系?
我已经阅读了 LINK 动词,但我担心所有网络服务器都不支持它。
我应该与PUT建立关系吗? 然后,我将如何删除与父项的关系(将其设置为NULL)。
我的CompanyController看起来像这样:
/**
* Edit Action
*
* @Rest\View()
*/
public function editAction(Company $company)
{
return $this->processForm($company);
}
/**
* Remove Action
*
* @Rest\View(statusCode=204)
*/
public function removeAction(Company $company)
{
$em = $this->getDoctrine()->getManager();
$em->remove($company);
$em->flush();
}
/**
* ProcessForm Action
*/
private function processForm(Company $company)
{
$statusCode = $this->getRequest()->getMethod() == 'POST' ? Codes::HTTP_CREATED : Codes::HTTP_SEE_OTHER;
$form = $this->createForm(new CompanyType(), $company);
$form->bind($this->getRequest());
if($form->isValid())
{
$em = $this->getDoctrine()->getManager();
$em->persist($company);
$em->flush();
return $this->redirectView(
$this->generateUrl(
'company_get',
array('id' => $company->getId())
),
$statusCode
);
}
return View::create($form, 400);
}
有什么建议吗?