2012-10-31 18 views
6

read-onlyフィールドをSymfonyフォームコンポーネントを使用してレンダリングする方法はありますか?形式symfony2読み取り専用

これは、私が無駄にそれをやろうとしています方法です:

$builder 
    ->add('descripcion','text',array('read_only' =>'true')) 
    ->add('pcompra','text',array('read_only' =>'true')) 
    ->add('pventa','text',array('read_only' =>'true')) 
    ->add('iva','text',array('read_only' =>'true')) 
    ->add('marca','text',array('read_only' =>'true')) 
    ->add('stock','text',array('read_only' =>'true')) 
    ->add('familia','text',array('read_only' =>'true')) 
    ->add('proveedor','text',array('read_only' =>'true')); 
} 
+0

この問題を解決する解決策がある場合は、受け入れられるとマークしてください:) –

答えて

0

ファミリアとproveedorが他のエンティティに関係している場合、私は、彼らがテキストタイプであってはならないと思います。型を無効にするか、エンティティ型に変更し、機能しているかどうかを確認してください。

7

読み取り専用属性を文字列に宣言しました。これはブール値である必要があります。

は、このようなtrue

の周りに引用符を削除します。

->add('descripcion','text',array('read_only' => true)) 

真、引用符なし。

3

read_onlyは、Symfony 2.8以降では非推奨です。ですので、代わりに読み取り専用を使用してください。 symfonyの3.0以降、読み取り専用値はATTRオプションで設定する必要があります。そして、この属性

->add('','text',array('readonly' => true)) 
2

更新のためのブール値を提供します。 http://symfony.com/doc/2.8/reference/forms/types/form.html#read-only

無効化オプションを代わりに使用することもできます。答えはすべてsymfonyの3にこの例外で終わる提供

+4

「無効」と「読み取り専用」は同じものではなく、互換的に使用できません。 どちらもユーザーと同様に表示されますが、読み取り専用フィールドは投稿の一部になりますが、無効フィールドは表示されません。 –

10

キャッチされないPHP例外のSymfony \コンポーネント\ OptionsResolver \例外の\ UndefinedOptionsException:「オプション "READ_ONLY" は存在しません

これを行うための正しい方法は、フィールド上attr性質を利用することである。

->add('descripcion', TextareaType::class, array(
    'attr' => array(
     'readonly' => true, 
    ), 
)); 
+0

Upvote。また、私はイラン出身です。テレグラムのアカウントを持ってもいいですか?ひと言言っておきたいのだが。 – Shafizadeh

+0

サラム、ここにu r:@peyman_mohamadpour – Trix

0

他の回答では管理できないものを追加してください。フィールドとして扱うが、編集を無効にするための "調整"が多くの場合有効です。しかし、編集を完全に防止する(すなわち、ラベルとしてレンダリングする)いくつかのフォーマットでレンダリングすることは、少なくとも困難です。

これを解決するにはどうすればよいですか?私がやったのは、フィールドをHiddenTypeとして定義することです。テンプレートでは、{{ form.vars.value.myfield }}または{{ item.myfield }}を使って、他のHTML要素と同じように考えることができます。

関連する問題