2016-10-16 3 views
0

У меня есть форма с полем, содержащим элемент ObjectSelect Doctrine.Объект Doctrine Выберите не увлажняющий объект как объект

$this->add(array(
'name' => 'vatRate', 
'type' => 'DoctrineModule\Form\Element\ObjectSelect', 
'options' => array(
    'label' => _('VAT Rate:'), 
    'object_manager' => $this->getEntityManager(), 
    'target_class' => 'Application\Entity\VatRates', 
    'property' => 'title', 
    'is_method' => true, 
    'find_method' => array(
     'name' => 'getVatRatesOrderRate', 
    ), 
    'label_generator' => function($targetEntity) { 
     return $targetEntity->getTitle() . ' (' . $targetEntity->getVatRate() . '%)'; 
    }, 
    'disable_inarray_validator' => TRUE, 
), 

));

В моем invoiceItems сущности У меня есть

/** 
* @var \Application\Entity\VatRates 
* 
* @ORM\ManyToOne(targetEntity="Application\Entity\VatRates") 
* @ORM\JoinColumns({ 
* @ORM\JoinColumn(name="vat_rate_id", referencedColumnName="vat_rate_id") 
* }) 
*/ 
private $vatRate; 

/** 
* 
* @param VatRates|NULL $vatRate 
* @return \Application\Entity\InvoiceItems 
*/ 
public function setVatRate(VatRates $vatRate = NULL) 
{ 
    $this->vatRate = $vatRate; 
    return $this; 
} 

Проблема, которую я имею что когда я проверить DoctrineObject увлажняющей формы доктрины является не преобразованием vatRate к объекту, прежде чем передать его в инкубатор. Я получаю следующую ошибку.

Catchable fatal error: Argument 1 passed to Application\Entity\InvoiceItems::setVatRate() must be an instance of Application\Entity\VatRates, integer given, called in C:\Users\User\OneDrive\Documents\My Webs\freedomsnew\vendor\doctrine\doctrine-module\src\DoctrineModule\Stdlib\Hydrator\DoctrineObject.php on line 282 and defined in C:\Users\User\OneDrive\Documents\My Webs\freedomsnew\module\Application\src\Application\Entity\InvoiceItems.php on line 339 

Как можно видеть в сообщении об ошибке целого числа vatRateId, отправляемой методе setVatRate invoiceItems сущности.

У меня есть другие формы/установки полей, аналогично, и все работают без проблем. Кто-нибудь знает, что я сделал неправильно здесь?

ответ

0

Проблема заключалась в том, что Учение хранило сущность. Очистка кеша решила проблему.

php ./vendor/doctrine/doctrine-module/bin/doctrine-module orm:clear-cache:query 
php ./vendor/doctrine/doctrine-module/bin/doctrine-module orm:clear-cache:metadata 
php ./vendor/doctrine/doctrine-module/bin/doctrine-module orm:clear-cache:result 

Я установил командный файл, чтобы сделать это с этого момента.