🥶

備忘録:WebformのCheckBoxesをViewで取得するとエラーが出る

2023/08/28に公開

※注意:こちら過去のメモから転記したものなので、抜けている情報があるかもしれません

問題

プロジェクト開発中、ちょっとした問題にぶち当たった。
コメントをWebformで作成し、そのメンション一覧をViewsで取得する、といったものです。作業前は非常に簡単なのですぐ終わるものと思いました。しかしWebformの要素にCheckBoxes(複数選択できるチェックボックス)を配置していることが問題で、Viewsの画面に遷移すると下記エラーが出てBlankページになってしまいます。

SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens: SELECT "webform_submission"."sid" AS "sid" FROM "webform_submission" "webform_submission" LEFT JOIN "webform_submission_data" "webform_submission_field_comment_webform_mentioned_users" ON webform_submission.sid = webform_submission_field_comment_webform_mentioned_users.sid AND webform_submission_field_comment_webform_mentioned_users.name = :views_join_condition_0 WHERE ("webform_submission"."webform_id" IN (:db_condition_placeholder_1)) AND ("webform_submission_field_comment_webform_mentioned_users"."value" LIKE :db_condition_placeholder_2:db_condition_placeholder_3:db_condition_placeholder_4 ESCAPE '\\') LIMIT 11 OFFSET 0; Array ( [:db_condition_placeholder_1] => comment_webform [:db_condition_placeholder_2] => 0 [:db_condition_placeholder_3] => 0 [:db_condition_placeholder_4] => 0 [:views_join_condition_0] => mentioned_users )

原因

どうもメンションするユーザーをentityとして取得していることが問題のようで、「drupal webform entity checkbox views」と検索するだけでいろいろエラーが出てきます。
https://www.drupal.org/project/webform/issues/3007599
https://drupal.stackexchange.com/questions/257966/webform-entity-checkboxes-not-ordered-as-per-source-view

対策

Webformそのものが恐らく問題ということになり、いったんこの方法は流れてカスタムフォームで解決することになりました。
現在自分のほうで調査中なので、続報をお待ちください。

Discussion