2016-03-15 6 views
0

У меня есть две таблицы, один называется Страна (номер, имя) другой Area (номер, имя, idFCountry)Как я могу получить Foreign Key с доктриной о ZF2

Я делаю это в моем контроллере:

$area = new Area(); 
$area->setNumarea($numarea); 
$area->setNamearea($namearea); 
$area->setIdfkcountry($idFCountry); 

Я получаю эту ошибку:

Catchable fatal error: Argument 1 passed to Synchro\Entity\area::setIdfkcountry() must be an instance of Synchro\Entity\Country

Как я могу решить эту проблему

заранее спасибо

ответ

0

Я предполагаю, что $ idFCountry не является объектом, вероятно (на основе имени переменной) вы пытаетесь передать строку или целое число.

Кажется, вы используете Zend, так что простой способ решить эту проблему получает объект на основе ID страны, предполагая, что $ idFCountry является строка, содержащая идентификатор:

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

$area->setIdfkcountry($countryObject); 
+0

, спасибо я сделать это, но я есть эта ошибка Идентификатор idcountry отсутствует для запроса Synchro \ Entity \ Country Спасибо заранее –

+0

Можете ли вы попробовать $ countryObject = $ repository-> findBy (array ('idcountry' => $ idFCountry)); вместо метода поиска? –