問題タブ [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.
php - なぜ $form['_csrf_token']->render(); symfony 1.4.8で値なしで非表示の入力をレンダリングしますか?
symfony 1.4.8 を使用していますが、非表示の csrf フォーム フィールドをレンダリングしようとすると、レンダリングされたフィールドに値が追加されません。私はこれを以前に問題なく実行しました。コードとレンダリングされた出力を確認するには、以下の例を参照してください。
コード:
生成:
コード:
生成:
ご覧のとおり、2 番目のメソッドは csrf_token の値を生成しますが、他のすべての行情報も生成します。このrender()
メソッドは、値を使用して「ウィジェット」(この場合は非表示の入力フィールド) を生成するだけであると想定されています。何らかの理由で値が追加されません。
php - symfony フォーム: チェックボックスを表示します (初期状態はチェックされていません)
プロジェクトに Symfony 1.3.x を使用しています。
私のフォームの 1 つの configure() メソッドには、次のコードがあります。
アイデアは、フォームが検証される前にユーザーがチェックする必要があるチェックボックス (デフォルトではチェックされていない) をユーザーに提示することです。
問題は、フォームを表示すると、チェックボックスが常にチェックされている (つまり、選択されている) ことです。これは、チェックボックスでユーザーの確認を強制するという目的を無効にします。
これを解決する方法を知っている人はいますか?
php - CRUDアクションへのsymfonyアクセス制限
symfonyによって生成されたCRUD関数があります。記事クラスと記事所有者がいます。現在の記事の所有者以外のユーザーが編集するのを防ぎたいです。私は自分のフィルターまたはバリデーターをカスタム化することを考えていましたが、バリデーターを実装するときに、一部のユーザーは編集フォームに入ることができます(送信するだけではありませんでした)。しかし、ユーザーフィルターを実装すると、一部のアクション(この場合は編集)の前にのみフィルターを実行させるという問題が発生します。
どうすればいいですか?
php - sfWidgetFormChoiceラベルのローカライズ
http://www.symfony-project.org/jobeet/1_4/Doctrine/en/10で提案されているように、sfWidgetFormChoiceのラベルがモデルテーブルで定義されている場合、これらのラベルをどのようにローカライズできるのか疑問に思っていました。
advancheに感謝します:)
symfony1 - Symfony フォームの開始時間ウィジェットと終了時間ウィジェット
フォームに開始時間ウィジェットと終了時間ウィジェットが必要です。
つまり、ユーザーは日付を選択してから、開始時刻と終了時刻を選択します。
標準の日付ウィジェットでは、日付と時刻を選択できますが、終了時刻も選択できるようにする必要があります。
以前にやったことがある人はいますか?
3 つの個別のウィジェットを作成できます。
- 日にち
- 始まる時間
- 終了時間
フォームが保存されたら、オブジェクトを更新して、すべての値を 1 つに結合します。たとえば、日付を取得して開始時刻を追加し、「start_date」フィールドに保存します。次に、日付を取得して終了時刻を追加し、「end_date」フィールドに保存します。しかし、フォームフレームワークにとってはかなり些細なことを行うには、非常に長い道のりのように思えます。
これはあなたがそれを行う方法ですか?みんなありがとう!
forms - リレーションが埋め込まれたフォームは Symfony 1.4 Doctrine を保存しません
Mutt フォームを Mix フォームに埋め込みました: MixForm.class.php:
Mutt テーブルの mix_id フィールドに入力するには、Mix テーブル用に新しく作成された id フォームが必要です。
これがmodules/mix/actions/actions.class.phpの私のアクションです
フォームの検証は正しく機能しますが、どちらのデータベースにも保存されません。私は何を間違っていますか??
validation - sfValidatorCallbackを使用したembedFormのSymfony 1.4でのPreValidation
1:n の埋め込みフォームを持つ SymfonyForm があります。メイン フォームとembedForm クラスには、条件付き検証を実装する独自の PreValidation があります。EmbedForm クラスの一部は次のようになります。
メイン フォームの事前検証も同様です。
フォームを送信すると、メイン フォームの事前検証が正常に機能します。
埋め込みフォームでは、「SOME_FIELD」は必要な検証エラーを取得しますが、埋め込みフォームの preValidation で明示的にsetOption('required', false)に設定しました。
埋め込みフォームで事前検証を使用するときに考慮しなければならないことはありますか? mergePreValidatorはどうですか?それについてのヒントはありますか?
前もって感謝します!
php - 「追加」フィールドを含む管理フォーム
というオブジェクトのフォームがありますAccountImport
。このフォームは、管理者が生成したモジュールにあります。このオブジェクトの属性に直接マップするフィールドに加えて、追加のフィールドがいくつか必要です。
フォームにフィールドを追加しただけでは、フォームがオブジェクトAccountImport
と一致しなくなるため、正しく保存されません。AccountImport
テンプレートを手動で作成し、余分なフィールドをそのように接合すると、admin ジェネレーターが無料で提供するすべてのもの (つまり、書式設定、[リストに戻る] ボタン、保存ボタン) が破棄されます。
私がやろうとしていることを行うための「良い」方法は何ですか?
internationalization - Symfony 1.4 フォーム、埋め込みフォームで sfValidatorError をスローする条件付き
私はページオブジェクトを持っています:
そして、i18n フォームが埋め込まれた PageForm:
is_course が false に設定されている間、フィールド course_name と course_description は必要ありません。ただし、is_course が有効になっている場合、検証は course_name と course_description が必要であるというエラーをスローする必要があります。
「Symfony Advanced Forms」ガイドとその他の投稿を読みましたが、PageForm で sfValidatorCallback を使用するか、PageTranslationForm で PostValidator を使用する必要があるかわかりません。私はこの方法で sfValidatorCallback を使用しようとしました:
しかし、$values['pl']['course_description'] でエラーをスローする方法がわかりません。これは、Symfony API が _what_name_ はエラーの配列であるべきだと言っているためです..
symfony でフォームを検証する過程で何が起こっているのか、本当に混乱しています。
//編集
PageTranslationForm にいくつかの変更を加えたところ、次のようになりました... //PageTranslationform.class.php
そして、ほとんど機能しますが...このバリデーターは、PageForm is_course が「true」に設定されている場合にのみ有効にする必要があります。PageTranslationForm の checkCourses 関数で PageForm からフィールド「is_course」にアクセスするにはどうすればよいですか?
//解決
ジェレミーに感謝します。私はあなたのアイデアを使用し、最終的にこの解決策を得ました:
アドバイスありがとうございます。完璧に動作します。お役に立てば幸いです:)
php - sfWidgetFormSelectは、選択したアイテムの文字列またはintを提供しますか?
迷惑な問題があります。フォームのどのフィールドが変更されたかを調べて、それをテーブルに挿入しようとしています。次のようにdoUpdateObjectasでvar_dumpを実行できました
そして、$ this-> getObject()-> getModifiedは、trueまたはfalseに設定することで、前後の値を指定するのに機能しているようです。
私が今直面している問題は、どういうわけか、sfWidgetFormSelectが私のフィールドの1つを文字列として保存しているように見えることです。保存する前は、まったく同じフィールドがintでした。(私は前と後の両方でvar_dumpによってこのアイデアを得ました)。
両方のvarダンプの結果は次のとおりです。
これにより、教義はこれが修正であると考え、したがって誤検知を与えるようです。
私の基本形では、私は持っています
最後に、構成済みのForm.class.phpで、ファイルを次のように再構成しました。
statusesは、{"" a "、" b "、" c "、"d"}などの値を含む配列です。
ステータスのインデックスをデータベースに保存したいだけです。
また、変更を別のデータベーステーブルに挿入するにはどうすればよいですか?私のログテーブルとしましょう。
なぜこれが起こるのかについてのアイデアやアドバイスはありがたいです、私はそれを理解しようとしていて、無駄にさまざまなキーワードをグーグルで閲覧しています。
ありがとう!
編集:
さて、テストのためだけにスキーマに整数という別のフィールドを作成しました。エントリを作成して保存し、編集しました。
今回も同じことが起こりました!