問題タブ [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.

0 投票する
0 に答える
295 参照

zend-framework2 - MultiCheckbox の要素を ZF2 のオブジェクトにバインドする方法は?

ネストされたZend\Form\Fieldsets およびZend\Form\Collectionsを使用しています。これは、フォーム入力から完全なオブジェクト (保存する準備ができている) を取得するために、複雑なオブジェクト構造をフォームにマップするための非常に快適な方法を提供します。

今フォームに追加したい要素は、可能なプロトコルのリストを表す必要があります。idデータベースでは、列とオブジェクトの構造を持つ単純なテーブルでnameあり、オブジェクトの構造は のように記述できますEndpoint has Protocol[]。(s. 以下)を定義しましたが、この要素をプロトタイプMultiCheckboxにバインドする方法がわかりません。Protocola の場合、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(...)-- に使用しようとしますが、これは機能しません。

0 投票する
2 に答える
614 参照

php - Zend Forms (ZF1) DD 内のチェックボックスの後に余分な HTML を追加する方法

UPD:解決済み - 余分なデコレータを追加しました。

次の結果が必要です。

チェックボックスの直後に、HTMLタグで「テキスト」をラップする必要がありますが、/ DDの前(後ではありません)!

私の現在のコードは次のとおりです。

したがって、次のものが生成されます。

そして、チェックボックスの後に余分なHTMLを挿入する方法の手がかりが得られません...しかし、DD内

0 投票する
0 に答える
90 参照

zend-framework2 - ZF2で一意のフォームにフィールドを複数回注入する方法は?

Fieldset私はいくつかの入れ子になったs とsを持つかなり複雑なフォームを持っていCollectionます。フォームの一部は一定で、他の部分は可変です。

BasicSettings EndpointBasicSource (定数部分) EndpointBasicTarget (定数部分) SpecificSettings EndpointType{TYPE}Source (変数部分) EndpointType{TYPE}Target (変数部分)

EndpointBasicSourceとには、 を提供する がEndpointBasicTarget含まれています。つまり、フォームには少なくともs が含まれています。ServerFieldsetField server_name2 server_name Field

いいえ、片側、または両側に応じSpecificSettingsて、最大 までのサーバーを含むサーバー( ) を含めることができます。EndpintTypeCollectionoptions.target_element.type => ServerFieldset5

以下は、非常に単純化されたスキーマです。

ここに画像の説明を入力

これで、サーバーは一意になるはずです (server_nameフォームのすべてのフィールドで、値が繰り返されない場合があります)。しかし、これを行う方法は?問題は、 が他の複数のs/ServerFieldsetを介して注入され、一意性の検証がそれらすべてのに関連付けられる必要があることです。FieldsetCollectionserver_name Field

この問題を解決し、フォーム全体の一意性検証をserver_name実装するにはどうすればよいでしょうか?

0 投票する
1 に答える
62 参照

zend-form - zend-form コレクションが正しい名前を生成しない

私は現在 zend-expressive を使用していますが、今は zend-form を使用してフォームを生成したいと考えています。すべてが正しくインストールされています。私は今、次のセットアップを持っています:

私のテンプレート (Twig) には、次のスニペットがあります。

これにより、フォームがきれいに表示されます。今私の問題。カテゴリを編集しようとすると、次のようにフォームに入力します。

しかし今、フォームは次の切り取られたものを生成します:

ご覧のとおり、2 番目の select 要素の名前が間違っています。他のすべてはうまく機能しますが、名前の生成です。何かを見逃しているかどうかはわかりません。私は実際に他のウェブサイトでいくつかのヘルプを見つけようとしましたが、何も問題を解決しませんでした. たぶん、あなたは私の間違いに気づき、このフォームを完成させるのを手伝ってくれるでしょう.

よろしくお願いします。