PowerCMS Xで編集画面に複数選択チェックボックスを設けるときー

投稿日:

はまったのでメモ。

前提として、PowerCMS Xは「モデル」と「カラム」という概念がある。イメージとしては次の通り。

  • 「モデル」は、PowerCMSの「記事」「ウェブページ」(要はMTObject)。
  • 「カラム」は、前述の「記事」なら「タイトル」「本文」などの各入力項目。

また、「カラム」は「id」以外は、任意に追加・削除が出来るようになっている。
なので、PowerCMSで言うカスタムフィールドの機能の様な感じで入力項目の追加が出来る(※厳密にはPowerCMSのカスタムフィールドとXの「カラム」の概念は異なるので注意)。

踏まえて表題の件だが、リレーションを用いない形で複数選択チェックボックスを設けるときにハマった。
※「リレーション」は後述の「参考」から公式のドキュメントを参照。

事象に至るまでの手順は次の通り。

  1. 複数選択チェックボックス型のカラム(以降hoge)を設ける先の対象モデルの編集画面で、hogeを新設。
  2. hogeの行のカラム「編集表示」の値を「選択項目」とし、その後自動で出るポップアップでオプション(=選択肢)、コントロール型(radio,checkbox,selectのいずれかを設定。ここではcheckboxを選択)して画面の「保存」ボタンを押下。
  3. 対象モデルで作成した新規オブジェクトの編集画面で、hogeの入力項目が出ているのを確認し、任意のオプションをチェックして保存。

しかし、画面遷移後に入力値が保持されず。

原因は対象モデルの編集画面におけるhogeの行のカラム「タイプ」の値が「真偽値」になっている事によるものだった。
リレーションを用いる場合は、ここの値は「リレーション」になるが、用いない場合はテキスト(「テキスト(50)」「テキスト(255)」「テキスト」のいずれかと思われる)でなければいけない。
実際hogeに対応する入力項目の値が正しく保存される場合は、CMSのDB上のhogeに対応するテーブル上のカラムの値は、選択したオプションのテキストがカンマ区切りで指定されていた。

以上の件は理解してみれば簡単な話だが、ググっても該当する情報がぱっと見つけられずチョッチ時間がかかってしまった。

参考

モデルの基本 (カラムとリレーションの設定) | PowerCMS X

関連するタグ

PowerCMS X