問題タブ [zend-form2]
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 - ZF2 で FormMultiCheckbox を使用せずにグローバル ラベルを表示できるようにするにはどうすればよいですか?
私はで使用Zend\Form\Element\MultiCheckbox
していZend\Form\View\Helper\FormMultiCheckbox
ます:
MyFieldset.php
myform.phml
動作しますが、「global label
」が表示されません。を使用していると表示されますZend\Form\View\Helper\FormElement
がFormMultiCheckbox
、「グローバル」を無視しているようlabel
です。
チェックボックス一覧をFormMultiCheckbox
表示させるには?label
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(...)
-- に使用しようとしますが、これは機能しません。
zend-framework2 - ZF2でフォーム要素をカスタム要素に置き換える方法は?
MultipleCheckbox
リストのチェックボックスが選択されていない場合、フォームの検証が失敗するという問題、特に問題に苦しんでいます。(詳細はこちら)
Zend\Form\Element\Checkbox
この問題を回避するには、メソッドをオーバーライドするカスタムのものに置き換えたいgetInputSpecification()
:
Checkbox.php
module.config.php
しかし、私のカスタムCheckbox
クラスは Zend の on を置き換えていません。完全に無視されているわけではありません。Xdebug を使用すると、場合によっては使用されることがわかります(RadioButton
要素や単一Checkbox
要素など)。しかし、他の場合(特に my のチェックボックスの場合MultiCheckbox
)はそうではありません。
私は何を間違っていますか?Zend\Form\Element
アプリケーション全体の a を置き換える方法は?
zend-framework2 - zf2 フォーム無効選択オプション
select 要素のオプションを無効にすることは可能ですか?
デフォルトで多くのオプションが利用可能な select 要素を持つフォームがあります。フォームの作成中に、データベースから取得した情報に応じて、特定のオプションを無効にしたいと考えています。
いくつかの調査
$form->get('selectElement')->setAttribute("disabled", array(0, 1, 2));
では、最初の 3 つのオプションを無効にする必要がありますが、残念ながらそうではありません。
forms - Zend Framework 2 でフォーム プレビュー ページを実装する方法は?
私の現在の ZF2 プロジェクトでは、バックグラウンドで保存されるオブジェクトの構造を反映する、Form
複数レベルのネストされたs を持つ複合体があります。Fieldset
現在、データは に直接送信され、Controller
有効な場合はデータベースに保存されます。
ここで、中間ステップを実装する必要があります。ユーザーは、入力データがデータベースに保存される前にチェックする機会を得る必要があります。彼が正しいと判断した場合は、フォーム データを送信してデータベースに保存する必要があります。ユーザーがフォームを編集する必要があると判断した場合、ユーザーはフォームに戻って修正できるはずです。(もちろん、ユーザーがフォームに満足して送信するまで、すべてループします。)
つまり、プレビュー ページが必要です。この page/action
は、データを取得し、何らかの方法で (テーブルとして、またはしかし) 表示する必要があります。Form
データは一時的にどこかに保存され、オブジェクトに「ハイドレート」されて保存される準備ができている必要があります。ユーザーがフォームを更新したい場合は、フォームを復元する必要があります。
この要件をどのように実装できますか?
アップデート
サーバー側のソリューションを探しています。プレビューは、同じページ上の JavaScript/クライアント側で生成された HTML ではなく、新しいページである必要があります (追跡およびその他の目的のため)。
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-framework2 - ZF2.4 ファイル入力 RenameUpload
を実装するフィールドセットを持っているInputFilterProviderInterface
ので、機能がありますgetInputFilterSpecification
。この__construct()
関数は、次のようにファイル要素 (「ロゴ」) を追加しています。
関数に RenameUpload 入力フィルターを追加するにはgetInputFilterSpecification
どうすればよいですか?
次のいくつかのバリエーションを試しましたが、成功しませんでした。
FileRenameUpload フィルタ ( ) を追加するにはどうすればよいZend\Filter\File\RenameUpload
ですか?
[編集]
配列を次のように変更しました。
これは機能しているように見えますが、現在このメッセージが表示されています-
ファイル 'C:\xampp\tmp\phpDA68.tmp' の名前を変更できませんでした。ファイルの処理中にエラーが発生しました。
どのようなエラーが発生した可能性がありますか? どうすれば修正できますか?
zend-framework2 - 詳細の配列ではなく、ファイル名のみを返すためのファイル入力の getdata
ファイルアップロードフィールドを含むフィールドセットを持つフォームがあります。var_dump
onを実行する$form->getData()
と、ファイル フィールドのデータの配列が表示されます。
を呼び出したときに要素が名前のみを返すようにするにはどうすればよいgetData
ですか?
例えば
私は他の目的でフォームを使用しており、すでにオーバーライドgetData
しているため、回答をフィールドセットに保持したいと考えています。
zend-framework2 - フィールドセットにクラスを追加するには?
次の要素が追加されたZF2のフォームがあります。
私のビュースクリプトには、次の行があります。
次のhtmlを生成しています:
フィールドセットにクラスを追加するにはどうすればよいですか?
以下をoptions
配列、attributes
配列、およびメイン配列のオプションとして追加しようとしましたが、フィールドセットにクラスを追加していません。
[編集]
コード ( \Zend\Form\View\Helper\FormRow::render
) を調べると、次のことがわかりました。
つまり、フィールドセット (または必要に応じて凡例) にクラスを追加する唯一の方法は、ビュー ヘルパーを拡張することです。
php - stream_resolve_include_path が false を返す?
を実装しているフィールドセットがありますInputFilterProviderInterface
。私のgetInputFilterSpecification
関数は次のようになります。
ご想像のとおり、ファイルのアップロードを拡張子で検証しようとしています。
私の問題は、バリデーターがエラーメッセージを出していることです
ファイルが読み取れないか、存在しません
Extension
クラスを調べると、問題の原因となっている関数が見つかりました: stream_resolve_include_path($file)
. 次var_dump
$file
の出力を取得すると:
C:\Windows\Temp\php6BE7.tmp
だから...なぜstream_resolve_include_path
このパスを解決できないのですか? どうすれば修正できますか?
これは現在、Windows 仮想マシンで実行されています。これは問題の一部ですか?つまり、上記の機能は互換性のあるオペレーティング システムでのみ動作しますか?