質問

投稿者:yaesu
登録日:2025年8月1日(金)

認証DBと更新対象DBが異なる場合、更新対象レコードを作成する方法

■やりたいこと アンケートサイト: このサイトに、アンケート回答者が、ログインしてくるので、 DB「user」で認証して、 DB「answer」にアンケート回答を保存したいと考えています ■画面遷移 次のクエスチョンの回答に沿った画面遷移を想定しています。 https://knowledge.spirers.jp/question/board/detail?topicid=206 (1)ログイン画面を開き、userで認証する  https://**********.beta.spiral-site.net/user/login (2)認証したuserに対応したanswerを表示する(レコードリストだが1行のみ)  https://**********.beta.spiral-site.net/user/list (3)レコードリストのリンクをクリックすると、回答画面を開く  https://**********.beta.spiral-site.net/user/answer ■質問 DB「answer」に1レコード追加する方法を教えてください。 以下のタイミングと条件が望ましいと考えましたが、実装方法が思いついていません。 ・回答者がログインに成功したタイミングで、 ・認証されたuserレコードに対応するanswerレコードがまだ存在しないなら、 ・answerレコードを1行追加する。 ■蛇足 ログイン成功時に、userのstatusを変更できれば、DB「user」のレコードアクションで、「他DB」に登録できるかと考えましたが。何度ログインしても1レコードのみに制限する条件の設定方法は、思いついていません。 以上、よろしくお願いします。

更新日:2025年8月4日(月)
いいね

コメント

  • お問い合わせいただきましてありがとうございます。 > DB「answer」に1レコード追加する方法を教えてください。 下記の方法でレコードを追加することが可能です。 1. 「user」が登録された際に、他DBへ登録トリガを用いて「answer」へ登録 2. 登録フォームで、ユーザーが「answer」に登録 3. apiで登録 4. SPIRAL管理画面から登録 更新フォームからアンケートを回答する場合、一度登録いただく必要がございます。 アンケートを回答いただくのが1回のみの想定でしたら、登録フォームでの作成いただくことで、事前のレコード登録が不要になります。 更新フォームで作成したい、かつアンケートがユーザーにつき1件の場合でしたら1の登録トリガを用いる方法で実現可能です。

    • いいね
    2025年8月4日(月)
  • > 以下のタイミングと条件が望ましいと考えましたが、実装方法が思いついていません。 > ・回答者がログインに成功したタイミングで、 > ・認証されたuserレコードに対応するanswerレコードがまだ存在しないなら、 > ・answerレコードを1行追加する。 上記の内容で実装を行いたい場合には、3のapiの方法で実現が可能です。 ① ログインしたユーザーの情報をもとに、DB「answer」を検索 ② DB「answer」にログインしたユーザーの紐づくレコードが存在しない場合、「answer」にユーザーの情報を登録 ログインしたユーザーの情報は、getAuthRecordByFieldIDで取得することができます。 また、APIでのレコードの取得や登録に関しての詳細は下記サイトをご参照ください。 ▼PHP>getAuthRecordByFieldId($fieldId) https://support.spiral-platform.com/function/function-site-manage/6898.html#getAuthRecordByFieldIdfieldId ▼APIメソッドごとのサンプルコードまとめ Record / Record (bulk) https://knowledge.spirers.jp/article/development/detail/4148 ▼条件式や計算式の記法>参照フィールドを使った検索例 https://support.spiral-platform.com/api/16.html#%E5%8F%82%E7%85%A7%E3%83%95%E3%82%A3%E3%83%BC%E3%83%AB%E3%83%89%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F%E6%A4%9C%E7%B4%A2%E4%BE%8B ご確認の程、よろしくお願いいたします。

    • いいね
    2025年8月4日(月)
あなたもログインして、
回答してみませんか?