我在S2中構建簡單的CMS,並且在處理文章形式的關係類別時遇到了一些麻煩。Symfony2:使用關係原則數據處理表格
CategoryType和操作的代碼:http://codepaste.net/ahyoig都像在Symfony網站上的教程/手冊。
窗體看起來不錯,但當我處理數據(也像手冊中)我得到錯誤:「預期的參數類型數組,字符串給出」在選擇領域,我現在不知道如何解決它。
我在S2中構建簡單的CMS,並且在處理文章形式的關係類別時遇到了一些麻煩。Symfony2:使用關係原則數據處理表格
CategoryType和操作的代碼:http://codepaste.net/ahyoig都像在Symfony網站上的教程/手冊。
窗體看起來不錯,但當我處理數據(也像手冊中)我得到錯誤:「預期的參數類型數組,字符串給出」在選擇領域,我現在不知道如何解決它。
我認爲您的問題是因爲您將選項multiple
設置爲false
。這意味着表單類型將返回一個字符串值(因爲您將multiple
設置爲false
,即單個值),但您的關係可能設置爲多對多關係。
將multiple
選項設置爲true
將向您的對象發送數組而不是字符串,這是應用程序所期望的。然後,如果您不喜歡HTML中的CategoryType的列表框外觀,則可以使用Symfony2中的form theming以不同的方式呈現它。
希望這有助於 馬特
你並不需要一個CategoryType。 $ categories數組的創建也是無用的。
最好的選擇是使用本地實體表單類型:
<?php
use Doctrine\ORM\EntityRepository;
//...
$article = new Article();
$form = $this->get('form.factory')
->createBuilder('form',$article)
->add('category', 'entity', array
(
'class' => 'CMSBackBundle:Category',
'query_builder' => function(EntityRepository $er)
{
return $er->createQueryBuilder('c')
->orderBy('c.title', 'ASC');
},
'expanded' => false,
'multiple' => false
)
// ...
->getForm();