在我正在开发的 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);
}
有什么建议么?