Php 我如何在ZF2上获得具有原则的外键

Php 我如何在ZF2上获得具有原则的外键,php,doctrine-orm,zend-framework2,doctrine,Php,Doctrine Orm,Zend Framework2,Doctrine,我有两个表,一个称为国家(id,名称),另一个称为地区(id,名称,国家) 我在控制器中执行此操作: $area = new Area(); $area->setNumarea($numarea); $area->setNamearea($namearea); $area->setIdfkcountry($idFCountry); 我得到这个错误: 可捕获致命错误:参数1传递给 Synchro\Entity\area::setIdfkcountry()必须是的实例 同步\实体

我有两个表,一个称为国家(id,名称),另一个称为地区(id,名称,国家)

我在控制器中执行此操作:

$area = new Area();
$area->setNumarea($numarea);
$area->setNamearea($namearea);
$area->setIdfkcountry($idFCountry);
我得到这个错误:

可捕获致命错误:参数1传递给 Synchro\Entity\area::setIdfkcountry()必须是的实例 同步\实体\国家

我如何解决这个问题


提前感谢

我猜$idFCountry不是一个对象,可能(基于变量名)您正在尝试传递字符串或整数

似乎您正在使用Zend,因此解决此问题的一个简单方法是基于国家id获取对象,假设$idFCountry是包含id的字符串:

$repository = $this->getEntityManager()->getRepository('Synchro\Entity\Country');
$countryObject = findOneBy(array('idcountry' =>$idFCountry));

$area->setIdfkcountry($countryObject);

,谢谢我这么做了,但是我有一个错误,Synchro\Entity\Country的查询缺少标识符idcountry提前谢谢您可以尝试$countryObject=$repository->findBy(array('idcountry'=>$idFCountry));而不是find方法?