🥶
備忘録:WebformのCheckBoxesをViewで取得するとエラーが出る
※注意:こちら過去のメモから転記したものなので、抜けている情報があるかもしれません
問題
プロジェクト開発中、ちょっとした問題にぶち当たった。
コメントを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」と検索するだけでいろいろエラーが出てきます。
対策
Webformそのものが恐らく問題ということになり、いったんこの方法は流れてカスタムフォームで解決することになりました。
現在自分のほうで調査中なので、続報をお待ちください。
Discussion