我正在使用Symfony 2.1.3-DEV並嘗試實現轉換實體到字符串(某種ID),然後在表單提交時從字符串返回到實體。如果我使用的食譜給變壓器的問題是一樣的: http://symfony.com/doc/master/cookbook/form/data_transformers.htmlSymfony2表單實體到字符串轉換器問題
控制器代碼:
$task = $entityManager->find('AcmeTaskBundle:Task', $id);
$form = $this->createForm(new TaskType(), $task); // so $task->issue is Issue object
我得到這個錯誤:
The form's view data is expected to be an instance of class Acme\TaskBundle\Entity\Issue, but is a(n) string. You can avoid this error by setting the "data_class" option to null or by adding a view transformer that transforms a(n) string to an instance of Acme\TaskBundle\Entity\Issue.
的事情是,我已經有一個變換器,它轉換爲字符串。
從Form.php
:
if (null !== $dataClass && !$viewData instanceof $dataClass) {
throw new FormException(
//...
);
}
爲什麼$viewData
被檢查爲data_class
參數(或者猜到類型給定對象的)的實例?不是視圖數據應該是字符串/數組等?我錯過了什麼嗎?
您能向我們展示您的表單類型嗎?幫助你會更容易! – Snroki