2016-07-18 7 views
2

フォームを送信してレコードを保存する前に、電子メールアドレスで既存のレコードを確認したいと考えています。私はいくつかの調査を行い、RecordService.RecordSubmittedイベントを使用することを最も提案しましたが、Form.Core.Servicesをチェックすると、RecordServiceが表示されませんでした。Umbracoフォームに投稿する

このイベントに接続する方法はありますか?

私はUmbraco 7.4.3とフォーム4.3.2を使用しています

+1

他の人に同じ問題がある場合、RecordServiceはForm.Core.ServicesからForm.Web.Servicesに移動されます。それはどこにも記載されていません – Webpandit

答えて

5

あなたはいくつかの選択肢があります。 1つは、レコード記憶域イベントの1つを使用することです。これらは、次の名前空間に含まれています

Umbraco.Forms.Data.Storage.RecordStorage 

次のイベントが用意されています

  • RecordDeleting
  • RecordFetching
  • RecordInserting
  • RecordUpdating

私はないんだけどヨーヨーなら100%その時点でDBにない可能性があるため、RecordInsertingイベントのレコードを削除することはできますが、実際には試していません。

もう1つの方法は、重複を検索してレコードが重複している場合に削除するレコードが挿入されると実行されるカスタムワークフローを作成することです。 the Umbraco Community siteにこれに関するいくつかの文書があります。

最後に、その電子メールアドレスを持つ既存のレコードを検索し、JQueryなどを使用してそれを結び付け、検証が失敗した場合はフォームを送信しないカスタム検証を作成できます。

+0

ありがとう、それは助けた。また、私はRecordServiceがUmbraco.Forms.Web.Servicesに移動されたことを知りました。そのため、Core.Servicesでアクセスできなかったのです。 – Webpandit