由于API支持,我有一个我在数据表(webix)中发送的实体。在这个实体中,我有几个ManyToOne关系,我不知道如何显示或编辑。
在我的数据表中,当我尝试显示处于重新关系中的字段时,我得到了这个而不是id
[object Object]
当我尝试通过添加ID来编辑此字段时,我收到了此错误消息
Type error: Argument 1 passed to ErpBundle\Entity\Trial::setGSponsor() must be an instance of ErpBundle\Entity\Sponsor, string given
我理解我在数据表中获得的是一个对象,但我不知道如何获取该名称的ID(并且能够从数据表中选择它)。
我是否必须编辑吸气剂?存储库?
我试图像这样编辑我的getter,但当然它不起作用:
/**
* Get gSponsor
*
* @return \ErpBundle\Entity\Sponsor
*/
public function getGSponsor()
{
return $this->gSponsor->getId();
}
在我的代码的一部分下面:
在控制器中,我只是为视图渲染模板。 Webix只是将url作为参数来获取数据(url:“rest-> {{path('erp_trialapi_cgetload')}}”)数据表自动显示在我的ApiController中发送的内容
我的实体的一部分
class Trial
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
*
* @ORM\ManyToOne(targetEntity="ErpBundle\Entity\Sponsor")
*/
private $gSponsor;
/**
* Get id
*
* @return int
*/
public function getId()
{
return $this->id;
}
/**
* Set gSponsor
*
* @param \ErpBundle\Entity\Sponsor $gSponsor
*
* @return Trial
*/
public function setGSponsor(\ErpBundle\Entity\Sponsor $gSponsor = null)
{
$this->gSponsor->get = $gSponsor;
return $this;
}
/**
* Get gSponsor
*
* @return \ErpBundle\Entity\Sponsor
*/
public function getGSponsor()
{
return $this->gSponsor;
}
我的API
class TrialApiController extends FOSRestController
{
/**
* @Rest\Get("/api_t/get")
*/
public function cgetLoadAction()
{
$em = $this->getDoctrine()->getManager();
$repo = $em->getRepository('ErpBundle:Trial');
$trials = $repo->findAll();
return $trials;
}
我会感激任何帮助。
非常感谢!