問題タブ [symfony-forms]

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 投票する
1 に答える
681 参照

symfony1 - 複数のクエリを実行して繰り返しフォームフィールドに入力するsymfony

私の symfony プロジェクトには、オブジェクト B と 1 対多の関係を持つオブジェクト A があります。

A のフォームでは、$this->embedRelation('B') を使用して B を入力/編集するためのフォームを表示しています。

B のフォームには、データベースから自動的に入力される自動生成された sfWidgetFormChoice が含まれています。ただし、フォーム A に埋め込まれたフォーム B が複数出現する場合、symfony はデータベースに複数回クエリを実行して、sfWidgetFormChoice 選択コントロールを設定します。

このクエリを 1 回だけ実行する必要があることを symfony に示す方法はありますか?

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

php - symfony埋め込みフォーム-多対多の関係

ORMとしてsymfony1.4とPropelを使用しています。他のフォームを埋め込む必要のあるフォームがあります。もう1つの形式は、顧客とオブジェクトを接続するn:m関係です。顧客のすべてのオブジェクトを表示するように埋め込む方法がわかりません。

次のスキーマを考慮して、CustomerCountryGroupフォームをCustomerフォームに埋め込み、ユーザーに関連するCuountryGroupオブジェクトのリストを表示したいと思います。

これが私のschema.ymlです:

この問題のチュートリアル/解決策をどこで見つけることができるか知っていますか?

どうもありがとう

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

symfony1 - 新しいアクションでポストバリデーターを使用するsymfony 1.4がエラーをスローする

フォームに対して次のアクションがあります。MyForm の定義では、ポスト バリデータを追加して、特定の条件で一度に 2 つのフィールドを検証できるようにしました。問題は、検証に合格した後、symfony がエラーを送信し、データベースの新しいレコードに null 値を格納する場合に発生します。ここにコードを投稿します...私のフォームには2つのフィールドしかなく、ユーザーは2つのリストからそれぞれを選択して新しいレコードを作成します。スキーマの制限により、両方のフィールドの組み合わせは一意です。また、このフィールドの特定の組み合わせが新しいレコードの作成に許可されていないことを検証する必要があります。

アクション.クラス.php:

MyForm.class.php

mergePostValidator 行をコメントアウトすると、すべて正常に動作しますが、2 つのフィールドの特定の組み合わせを受け入れないという条件を検証できません。

そして、このコードをそのまま使用すると、組み合わせが無効な場合、すべて正常に機能し、「フィールドの関係が無効です!」というフォームが再び表示されます。メッセージ。しかし、組み合わせが有効な場合、symfony は次のエラーをスローします:

警告: 169 行目の /path/to/symfony/lib/plugins/sfDoctrinePlugin/lib/form/sfFormDoctrine.class.php の foreach() に無効な引数が指定されました

キャッチ可能な致命的なエラー: *Doctrine_Record::fromArray() に渡される引数 1 は、150 行目の /path/to/symfony/lib/plugins/sfDoctrinePlugin/lib/form/sfFormDoctrine.class.php で呼び出される、null を指定した配列でなければなりません/ṕath/to/symfony/lib/plugins/sfDoctrinePlugin/lib/vendor/doctrine/Doctrine/Record.php の 1970 行で定義されています*

警告: 1973 行目の /path/to/symfony/lib/plugins/sfDoctrinePlugin/lib/vendor/doctrine/Doctrine/Record.php の foreach() に無効な引数が指定されました

そして、ヘッダーを応答に変更できないことに関するいくつかの警告/エラー (ただし、私は自分で変更していません。おそらく、アクション Create メソッドの $this->setTemplate('new') だけです...

私は Symfony 1.4.9 を使用していますが、SVN サーバー (rev 32070) の 1.4 開発ブランチでも試してみましたが、同じ結果が得られました。アパッチ 2.2、PHP 5.2.6

0 投票する
5 に答える
1296 参照

php - フォーム ウィジェットに値を割り当てる

_form.php にフォーム ウィジェットがあります

symfony は基本クラスを作成しました:

「onchange」イベントを組み込むことができるように、ドロップダウン リストを手動で再作成しました。

ドロップダウンから値を選択して送信をクリックすると、バリデーターがcatcher_idecho $form['catcher_id']が必要であると言うので (ドロップダウンを手動で作成したため)、値を手動で設定するにはどうすればよいですか?

私は持っている:

しかし、それは機能していません。

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

symfony1 - フォームにアップロードした後のsymfony1.4プロセスファイルは、データをDBに送信しませんが、ファイルをディスクに保存します

sfWidgetFormInputFileフィールドを持つフォームがあります。画像をアップロードしていますが、アップロード後、アップロードしたばかりのファイルに処理を加えたいと思います。

私はこれにvalidated_file_classを使用できることを知っています。カスタムクラスのsave()メソッドを上書きしていて、ファイルは正しく保存されますが、データベースへの保存が機能せず、ファイル名フィールドにnull値が送信されるだけです。私は何かが足りないのですか?

関連するコードは次のとおりです。

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

symfony-1.4 - Symfony-Propelにフォームを埋め込む

ファイルをアップロードしたいファイル入力がファイルされた管理モジュールがあります。これが私が制限されているものであるため、私はファイルをblobとしてデータベースにアップロードしようとしています。これは悪い習慣ですが、ファイルシステムにファイルを追加することはできません。

私は次のスキーマを持っています:

これまでのところ、BlobForm.class.phpにすべてのウィジェットとスキーマを作成し、このフォームをPressPhotoForm.class.phpに埋め込もうとしました。

ファイルを選択してアップロードすると、blob_dataテーブルに追加されているように見えますが、press_photoテーブルでは、blob_data_idが空白であり、入力ウィジェットに画像があることを示すチェックボックスがありません。

誰かがアップロード時にblob_data_idをpress_photoテーブルに入れる方法に光を当てることができますか?

ありがとう

編集:

これが私のフォームです:

}

クラスPressPhotoFormはBasePressPhotoFormを拡張します{

}

ありがとう

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

symfony1 - Symfony Embedded Relation Many2Many - 一意のフィールドのリンクまたは新しいフィールドの作成

埋め込み関係を使用して、ユーザーが本を編集/ライブラリに追加し、同じフォームで、自動生成された管理者内で本を書いた n 人の著者を追加/削除できるようにしています。

ここに私の問題があります: 著者名は一意であるため、既に存在する著者を入力すると sfValidatorDoctrineUnique がエラーを生成します。

同じ「名前」を持つオブジェクトが既に存在します。

私がやりたいことは、このエラーをキャッチして、既存の作成者を新たに追加しないようにフォームに指示することです。

そのためにイベントシステムを使用するか、バリデーターを変更するか、どうすればそれを行うことができますか?

どうもありがとう

PS: いくつかの検索の後、解決策と思われるものを見つけましたが、まだ動作させていませ

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

symfony1 - symfony 1.4は選択ウィジェットの選択肢として画像を表示します

特定の選択ウィジェット (DoctrineChoice) を含むフォームがあります。選択肢はサーバー内の特定の画像ファイルを参照し、expander=true オプションを使用します (チェックボックス/ラジオボタン用)。

各オプションの画像を表示してウィジェットを表示する方法はありますか? デフォルトでは、データベース内のオプションの ID のみを取得します。

firebug を使用して、生成された HTML に各選択肢の id を持つタグがあることに気付きました。また、特定の画像でこれを変更することができたので、必要なのはテキストを変更することだけだと思います各選択肢のラベル。ただし、ウィジェットの「ラベル」オプションは、選択全体のラベルを変更するだけなので、それはできません...

ありがとう!

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

symfony-1.4 - symfony - BLOB データの画像サイズを保存する

BlobDataForm が埋め込まれたフォーム PhotoForm があります。

blbo データを正常に保存できますが、問題は blob_data テーブルにあります。

image_width と image_height の 2 つのフィールドがあります。

ブロブを保存するときに、これらの詳細も保存したいと思います。

doSave(); をオーバーライドしました。

saveEmbeddedForms() もオーバーライドする必要がありますか?

ありがとう

編集:

わかりましたので、オーバーライドする必要があるようです:

プロセス値()

画像の幅と高さの属性を取得するのに問題があります。

誰も私がそれを行う方法を知っていますか?

ありがとう

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

symfony1 - update/edit コンテキストでの sfValidatorDoctrineUnique

新しいレコードを作成するためと、そのレコードを編集するための 2 つの別々のコンテキストでフォーム クラスを使用しています。URLフィールドが一意であることを確認するために、次のようにポストバリデーターを設定しました。

バリデーターは、新しいレコードを作成するときにうまく機能します。ただし、既存のレコードを編集すると、それ自体が重複として検出されるため、エラーがスローされます。つまり、レコードを編集しても URL を変更しないと、重複エラーがスローされます。

これは一般的な問題に違いないので、Symfony でこれを処理するにはどうすればよいのでしょうか? 基本的に、保存時にそれ自体を無視して (重複は存在しません)、ポストバリデーターを実行して、真の重複が存在しないようにしたいと考えています。