2012-12-09 70 views
11

我使用相同的形式,以「預覽」的對象,因爲我到「編輯/更新」相同的對象。 在我showAction()的控制器我有以下代碼:Symfony2的形式禁止

$form = $this->createForm(new SalesEntityType($entity), $entity, array('read_only' => true)); 

此代碼的偉大工程的主要形式,但也有一些是由包括由該部分子窗體的。在show.html.twig一個例子是:

{% include 'TargetCommonBundle:Hours:hoursForm.html.twig' with { form: hours } %} 

不幸的是,父窗體上的READ_ONLY設置似乎並不級聯到包括子窗體。有沒有辦法解決這個問題?

+0

看來,READ_ONLY在子窗體中正常工作,就像在主窗體中一樣。只是主或子窗體中的下拉列表都不能被更改。任何幫助讚賞。 – Cosmtar

+0

你可以添加read_only變量到with語句嗎?即:與{形式:小時,read_only:read_only} – lifo

+0

嘗試:$ form = $ this-> createForm(new SalesEntityType($ entity),$ entity,array('disabled'=> true)); – Lighthart

回答

14

嘗試:

$form = $this->createForm(
    new SalesEntityType($entity), 
    $entity, 
    [ 'disabled' => true ] 
); 

見:供應商/ symfony中/ symfony中/ src目錄/ Symfony的/分量/表格/ CHANGELOG.md,第一行

+1

感謝Lighthart,這就像一個冠軍! – Cosmtar

2
// It is the way more fast to disabled a form 
public function buildForm(FormBuilderInterface $builder, array $options) 
{ 
    $builder->setDisabled(true); 
}