問題タブ [zend-form-collection]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
zend-framework2 - MultiCheckbox の要素を ZF2 のオブジェクトにバインドする方法は?
ネストされたZend\Form\Fieldset
s およびZend\Form\Collection
sを使用しています。これは、フォーム入力から完全なオブジェクト (保存する準備ができている) を取得するために、複雑なオブジェクト構造をフォームにマップするための非常に快適な方法を提供します。
今フォームに追加したい要素は、可能なプロトコルのリストを表す必要があります。id
データベースでは、列とオブジェクトの構造を持つ単純なテーブルでname
あり、オブジェクトの構造は のように記述できますEndpoint has Protocol[]
。(s. 以下)を定義しましたが、この要素をプロトタイプMultiCheckbox
にバインドする方法がわかりません。Protocol
a の場合、Fieldset
経由で機能しFieldset\setObject(...)
ます。
Zend\Form
チェックボックスからオブジェクトを作成するフォーム処理メカニズムを取得するには?
これまでのコード:
EndpointFieldset.php
myform.phml
アップデート
新しいエントリを保存するための回避策を見つけました。フォームによって提供されたオブジェクトを手動で完成させProtocol
、値からオブジェクトを作成するだけMultiCheckBox
です。しかし、(既存のエントリを編集するために) 完全なオブジェクトを更新フォームに渡すと、通知が表示され、チェックボックスが構築されません。
注意: クラス My\DataObject\Protocol のオブジェクトは、202 行目の /var/www/path/to/project/vendor/zendframework/zend-form/src/View/Helper/FormMultiCheckbox.php で int に変換できませんでした
これについての私の解釈は、 はMultiCheckBox
プリミティブ型として値を持つ配列を期待するということです (例: int
)。代わりに、Protocol
オブジェクトを含む配列を取得し、その値をin_array(...)
-- に使用しようとしますが、これは機能しません。
php - Zend Forms (ZF1) DD 内のチェックボックスの後に余分な HTML を追加する方法
UPD:解決済み - 余分なデコレータを追加しました。
次の結果が必要です。
チェックボックスの直後に、HTMLタグで「テキスト」をラップする必要がありますが、/ DDの前(後ではありません)!
私の現在のコードは次のとおりです。
したがって、次のものが生成されます。
そして、チェックボックスの後に余分なHTMLを挿入する方法の手がかりが得られません...しかし、DD内
zend-framework2 - ZF2で一意のフォームにフィールドを複数回注入する方法は?
Fieldset
私はいくつかの入れ子になったs とsを持つかなり複雑なフォームを持っていCollection
ます。フォームの一部は一定で、他の部分は可変です。
BasicSettings EndpointBasicSource (定数部分) EndpointBasicTarget (定数部分) SpecificSettings EndpointType{TYPE}Source (変数部分) EndpointType{TYPE}Target (変数部分)
EndpointBasicSource
とには、 を提供する がEndpointBasicTarget
含まれています。つまり、フォームには少なくともs が含まれています。ServerFieldset
Field
server_name
2
server_name
Field
いいえ、片側、または両側に応じSpecificSettings
て、最大 までのサーバーを含むサーバー( ) を含めることができます。EndpintType
Collection
options.target_element.type => ServerFieldset
5
以下は、非常に単純化されたスキーマです。
これで、サーバーは一意になるはずです (server_name
フォームのすべてのフィールドで、値が繰り返されない場合があります)。しかし、これを行う方法は?問題は、 が他の複数のs/ServerFieldset
を介して注入され、一意性の検証がそれらすべてのに関連付けられる必要があることです。Fieldset
Collection
server_name
Field
この問題を解決し、フォーム全体の一意性検証をserver_name
実装するにはどうすればよいでしょうか?
zend-form - zend-form コレクションが正しい名前を生成しない
私は現在 zend-expressive を使用していますが、今は zend-form を使用してフォームを生成したいと考えています。すべてが正しくインストールされています。私は今、次のセットアップを持っています:
私のテンプレート (Twig) には、次のスニペットがあります。
これにより、フォームがきれいに表示されます。今私の問題。カテゴリを編集しようとすると、次のようにフォームに入力します。
しかし今、フォームは次の切り取られたものを生成します:
ご覧のとおり、2 番目の select 要素の名前が間違っています。他のすべてはうまく機能しますが、名前の生成です。何かを見逃しているかどうかはわかりません。私は実際に他のウェブサイトでいくつかのヘルプを見つけようとしましたが、何も問題を解決しませんでした. たぶん、あなたは私の間違いに気づき、このフォームを完成させるのを手伝ってくれるでしょう.
よろしくお願いします。