モデルの基本 (モデルの作成とプロパティ)

PowerCMS Xでは、「モデル」機能によって、データベースのテーブルの構造を定義し、管理画面の入力フォームを同時に定義することができます。 「モデル」とは、Model View Controllerにおけるモデルを指しますが、PowerCMS XではいわゆるMVC2における「モデル=データ」の部分を担います。

  • モデル=アプリケーションのデータ部分。「記事」「ページ」「カテゴリ」「アセット」などはすべて「モデル」です。
  • PowerCMS Xにおける「モデル」はデータベース・マイグレーションツールでもあり、モデルを作成すると、データベースにテーブルが作成され、モデルに「カラム」を作成するとテーブルにカラムが追加されます。これらの操作はすべて管理画面操作を通じて行われます。
  • モデルには「リレーション」擬似カラムを追加・設定できます。リレーションは、同一もしくは異なるモデルのオブジェクト同士を1対1または1対多で関連づけるものです(リレーショナル・データベース)。
  • モデルの管理画面は、データベースマイグレーションツールである側面を持つ一方で、管理画面作成ツールの側面も持っています。つまり、データベースのスキーマを定義すると同時に、管理画面上でそのデータをどのように入力・管理するかを定義します
  • モデルの「プロパティ」は、モデルがどのような性質を持つモデルかを定義するものです。バージョン管理を行うか、階層を持つことができるか、ワークフローに対応するか、など、モデルの特性を定義します。プロパティを設定すると、必要なカラムが自動的に作成されます。

モデルの作成と編集

既存のモデルをカスタマイズする、または新しいモデルを作るには、システムメニューの「システムオブジェクト」→「モデル」を選択し、既存のモデルを選択するか、「新しいモデル」をクリックします。

新しいモデルの作成画面

メニュータイプの設定

モデルの一覧画面へのリンクをシステムメニュー、スペースメニューにそれぞれ表示させることができます。表示位置の指定は「オプション」→「メニュータイプ」ドロップダウンで行います。頻繁にアクセスするモデルを「パネル」に指定すると、常にメニューに表示されるようになります。

尚、それぞれのメニューの表示順は、モデルの一覧画面でドラッグ&ドロップで並べ替えできます(表示順カラムが表示されない時は、一覧画面右上の「画面オプション」の設定を確認ください。

メニューの表示位置

モデルのオプション(プロパティ)の設定

プロパティ名(オプション)説明生成されるカラム
システムに表示システムメニューにリンクを表示します。
メニュータイプメニューの表示位置を指定します。
自動監査MT::Object(PowerCMS)のauditにあたる設定です。created_on / created_by / modified_on / modified_by
タグ付けオブジェクトに「タグ」を付与できるようにします。tags (擬似カラム)
テンプレート・タグダイナミック・タグを利用可能にします。
ベースネームベースネーム(システムもしくはスペースで自動設定されるユニークな識別子)カラムを追加します。basename
ユーザーをアサイン「ステータス対応」と「有効期限対応」をあわせて設定することで、ワークフローの対象とします。user_id / previous_owner
リビジョン対応オブジェクトのリビジョンを保存可能にします。rev_type / rev_object_id / rev_changed / rev_note / rev_diff
ステータス対応「有効・無効」もしくは「下書き・レビュー・承認依頼・公開予約・公開・公開終了」を指定できるようにします。status
有効期限対応ステータスを「下書き・レビュー・承認依頼・公開予約・公開・公開終了」で管理できるようにします。「ユーザーをアサイン」をあわせて設定することで、ワークフローの利用が可能になります。
階層オブジェクトを階層管理可能にします(例 : カテゴリ / フォルダ)。parent_id
アセットオブジェクトに複数のアセットを関連づけられるようにします。assets (擬似カラム)
添付ファイルオブジェクトに複数の添付ファイルを関連づけられるようにします。attachmentfiles (擬似カラム)
UUID自動的に設定されるUUIDカラムを追加します。uuid
インポート & エクスポートCSVインポート、エクスポートの対象とします。
ダイアログ・ビュー「リレーション」型の(擬似)カラムを作成し、編集表示「ダイアログ」を指定した時、権限の有無に関わらずオブジェクトをダイアログで選択可能にします。
複製オブジェクトの一覧画面または編集画面でオブジェクトを「複製」可能にします。
フォームオブジェクトに「フォーム」を関連づけられるようにします。form_id
スペースの子テーブルオブジェクトをスペース(WorkSpace)の子オブジェクトとします。workspace_id
スペースに表示スペース(WorkSpace)メニューに一覧画面へのリンクを表示します(表示位置はシステムのメニュータイプに準じます)。workspace_id
ダッシュボードに表示「モデル」ダッシュボードにウィジェットを表示します。
表示順メニューにおける表示順(数字)を設定します。一覧画面でドラッグ & ドロップで設定することもできます。
ソート可編集画面に数字を入力するか、一覧画面でドラッグ & ドロップで表示順を設定できます。order

関連情報