問題タブ [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 投票する
5 に答える
1895 参照

php - Symfony - 一意の列を更新する - 検証の問題

私は Symfony Framework を初めて使用し、フォームの検証で問題が発生しました。

ユニークカラムを含むDBのデータを更新したいのですが、ユニークカラムに変更がない場合、エラーが返されます(同じ「ドメイン」を持つオブジェクトが既に存在します。) ドメインカラムはユニークである必要がありますが、ユーザーは変更できる必要があります。したがって、あるユーザーが自分のドメイン名を保存すると、他のユーザーはそのドメイン名を使用できなくなりますが、後で変更することはできます。

フォームの検証では、一意の列を他の行だけでなく、それ自体とも比較しているようです。したがって、ユーザーが列を変更せずにフォームを保存すると、エラーが返されます。

列の一意性を維持しながら自由に変更するには、どの検証を使用する必要がありますか?

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

symfony1 - ウィジェット「password_again」は存在しません

次のエラーが発生しました: ウィジェット "password_again" が存在しません。

なぜそれが突然現れ始めたのか、私には考えられません。sfDoctrineGuard プラグインで提供されるデフォルトのジェネレーター ファイルを使用しています

フィールド password_again への唯一の他の参照はここにあります:

これも変更されていません。ですから、それを機能させるために次に何を試すべきかはよくわかりません。

何か案は?

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

php - symfonyフォームで、dbに正しい値を照会するフィールド(つまりパスワード)を検証するにはどうすればよいですか?

初心者の質問。

symfonyで非常にシンプルなLoginFormクラスを作成しました。ユーザーがユーザー名とパスワードをフィールドに挿入したかどうかをチェックし、期待どおりに機能します。

ここで、データベース内のユーザー名フィールドの存在を確認しようとしています。存在しない場合は、フォームを無効にします。パスワードについても同じです。ユーザー名とパスワードのペアが存在しないが、メッセージが異なる場合。

私が検索した解決策を2つの方法で見つけようとしています。

アクションで:

  • dbにクエリを実行し、
  • ユーザー名を確認し、
  • フォームのユーザー名フィールドを無効にします(結果のHTMLにエラーメッセージが必要です)。
  • ユーザー名とパスワードのチェックについても同じです

この場合、フォームを無効にするにはどうすればよいですか?テンプレートでエラーメッセージを処理する方法は?

isValid()メソッドを呼び出すフォームクラス:

  • setValidator()に何かを追加します
  • または、モデルをクエリするプライベート関数を呼び出すポストバリデーターを追加します

この場合、Formクラスでモデルを使用するにはどうすればよいですか?

最良/高速のアプローチはどれですか?他の可能性?

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

symfony1 - ラベルを表示せずに sfWidgetFormSelectRadio アイテムを表示する方法

Ubuntu 10.0.4 で Symfony 1.3.6 を使用しています。

私は sfWidgetFormSelectRadio を使用して、ユーザーがフォームでリストから画像を選択できるようにしています。

アクションでは、写真は次のように設定されています。

テンプレートでは、ウィジェットは次のように表示されます。

これにより、次の出力が生成されます。

フォームを台無しにするので、ラベルを表示したくありません。自分で HTML を手動で生成するのではなく (フォームとウィジェット名を使用して、ウィジェットが「ラベル」を表示しないようにする方法はありますか?

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

php - symfony にドクトリン モデルのメソッドが存在するかどうかを調べるにはどうすればよいですか?

メソッド getSomethingId() を持つ教義モデルがあります

社内で使用するための自動フォームジェネレーターのようなものを作っています

モデルにこのメソッドがあるかどうかを確認するにはどうすればよいですか?

PHP の method_exists を試してみましたが、すべてのメソッドに対して false が返されます。どうすればよいですか? ありがとう

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

php - フォーム送信時の sfWidgetFormChoice の「無効」エラー

symfonyを使ってコンボボックスを表示したい。CountryForm.php で、次のようにウィジェットを作成しました。

$this->setWidgets(array('country' => new sfWidgetFormChoice(array('choices' => array()))));

このバリデータの場合:

$this->setValidators(array('country' => new sfValidatorChoice(array('choices' => array(array_keys($countries))))));

このコンボボックスに対して「無効」というエラーが表示されます。これについて何かアイデアはありますか?前もって感謝します ..

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

database - 方法: オブジェクトの保存時に一意のインデックスが失敗したときにカスタム エラー メッセージを表示する

フィールドのセットが一緒になって複合一意キーを形成するようにするためだけに、テーブルにインデックスを追加しました (このアプローチは正しいですか? または、Doctrine でより良いオプションがありますか?)

それを行った後、オブジェクトを保存しようとして一意制約が失敗すると、SQL 例外が生成されます。これを処理する最善の方法は何ですか? カスタムエラーメッセージを表示するには?

私の宿題

  1. MySQL からの例外コードを確認して処理します。しかし、そのような制約が複数ある場合、正確な制約を特定することはできません。

  2. スキーマに postValidator を追加し、そこにロジックを記述します

3番目の/より良い方法はありますか?

ありがとう

0 投票する
3 に答える
3092 参照

php - Symfony-保存時にフォーム値を設定します

簡単な質問。私はsymfonyフォームを持っています。フォームを保存するときに、created_byフィールドを保存時に自動的に設定する必要があります。

したがって、現在のユーザーIDをオプションとして次の形式で渡します。

そして、フォームクラスのconfigureメソッドには次のものがあります。

created_byウィジェットがあり、それを非表示に設定した場合、これはうまく機能しますが、ユーザーがFirebugや他のツールを使用して簡単に操作できるため、フィールドを表示したくありません。

では、フィールドがウィジェットとして存在しない場合、列の値を保存するにはどうすればよいですか?

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

php - 埋め込みフォームの投稿バリデーター (sfForm) でエラーをスローする方法

Symfony 1.4 のフォームで、埋め込みフォームのポストバリデーターで sfValidatorError をスローするにはどうすればよいですか?

私の親フォームは以下を呼び出します:

そして私の埋め込みフォーム:

ポスト バリデーターは、sfValidatorError をスローする validateLink を実行しますが、グローバル エラーおよびフォーム isValid() として表示されませんが、そうであってはなりません。

エラーが無視されるのはなぜですか? 無視されないようにするにはどうすればよいですか?

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

php - Symfony フォームを段階的に「検証」する方法 - $form->isValid() を呼び出す代わりに

Ubuntu で Symfony 1.3.6 を使用しています。

多くのフィールドを含むフォームがあります - すべてのフィールドを一度に表示するのではなく (ユーザーを怖がらせる可能性があります)、フォームを段階的に分割して、ユーザーが表示されたフィールドのみに入力できるようにしたいと考えています。 、各ステップ/ステージで(ウィザードのようなものです)。

そのためには、フォームのカスタム メソッドを記述する必要があります。

上記の各関数では、使用可能なウィジェットのサブセットのみを検証します。つまり、そのステップでユーザーに表示されるウィジェットのみを検証します。

そのためには、ウィジェットで isValid() メソッドを呼び出すことができれば便利ですが、sfWidget クラスを調べたところ、ウィジェット レベルでそのような isValid() メソッドはありません。

これはDRYではないため、使用している各ウィジェットの検証をハードコーディングしたくありません

フォーム内の個々のウィジェットをチェックして、ユーザーが入力した値が有効かどうかを確認する方法を知っている人はいますか?