モデルの編集画面では、任意のカラムをテーブルに追加すると同時に、一覧画面・編集画面でそのカラムをどのように扱うか(入力させるか)を指定することができます。
タイプ | 作成されるカラム | 説明 |
---|---|---|
数値 | 数値型(int(11)) | 数値を保存する時、また、1対1のリレーションを指定する時に指定します。インデックスを指定することができます。 |
真偽値 | 数値型(int(4)) | 数値を保存する時、主にブーリアン型(真偽値)のデータを扱う際に指定します。インデックスを指定することができます。 |
テキスト(255) | 文字列型(varchar(255)) | 256文字未満の文字列を保存する時に指定します。インデックスを指定することができます。 |
テキスト | 文字列型(mediumtext) | 長いテキストを保存する時に指定します。インデックスを指定することはできません。 |
日付と時刻 | 日付型(datetime) | 日付を保存する時に指定します。インデックスを指定することができます。 |
バイナリ | BLOB(longblob) | 画像やファイルなどをバイナリ・ラージ・オブジェクトに保存する時に指定します。 |
リレーション | (作成されません) | この型を指定した場合、テーブルにカラムは作成されず、中間テーブルを介してオブジェクト同士を関連付けることができるようになります。主に、1対多の関連付けに利用します。 |
例として「セミナー(Seminar)」モデルの作成と設定、管理画面の構成方法について紹介します。
まず、あらかじめセミナーへの登壇者を登録する「Speaker(スピーカー)」モデルを別途作成します。
※ ラベルや複数形は日本語で入力することもできますが、基本的に英語表記で設定し、「システムメニュー」→「システムオブジェクト」→「フレーズ」に翻訳フレーズを登録するようにします。こうすることで、ユーザーの言語設定による管理画面の多言語対応が可能になります。
続いて、「セミナー」モデルを作成します。
※ ver.2.57で選択項目カラムのオプションで、値とラベルをデリミタ「=」で繋いだ形式のデータ指定をサポートしました(PowerCMS のカスタムフィールドと同じように指定 : 例「値A=ラベルA,値B=ラベルB...」)。
※ 「添付ファイル」リレーションはモデルのオプション(プロパティ)指定で自動的に作成される(擬似)カラムです。
オブジェクトにファイルを添付する方法には以下の3つの方法があります。
指定方法 | 説明 |
---|---|
カラムタイプ「バイナリ」、編集表示「ファイル」のカラムを作成 | BLOB型のカラムをモデルに作成して、そこへデータを格納する方法です。オブジェクトのステータスと実ファイルの書き出しが完全に同期しますが、1つのモデルに多数のBLOB型カラムを作成して多数のファイルを関連づけると、列が大きくなります。参考 : InnoDBの圧縮テーブルの設定 | PowerCMS X |
「アセット」をリレーションで関連づける | モデルのオプション(プロパティ)「アセット」を指定すると生成されるリレーション型の擬似カラムです。 アセットが利用されているオブジェクトは1つとは限らないため、参照元オブジェクトのステータスとは独立してステータス管理されます。 つまり、セミナー情報の公開と同時にファイルを公開したり、セミナー情報を公開終了した時にファイルを非公開にする、といった運用はできません。 ※ver. 2.2のUploadUtilitiesプラグイン 別ウィンドウで開きますで参照元モデルのステータスとアセットのステータス同期が可能になりました。 |
「添付ファイル」をリレーションで関連づける | モデルのオプション(プロパティ)「添付ファイル」を指定すると生成されるリレーション型の擬似カラムです。 アセットが利用されているオブジェクトは参照元オブジェクト1つであることが保証されます。 つまり、セミナー情報の公開と同時にファイルを公開したり、セミナー情報を公開終了した時にファイルを非公開にする、といった運用が可能です。 |
今回は3番目の『添付ファイルをリレーションで関連づける』形で設定しています。テンプレート・タグにチェックがある(ダイナミック・タグが有効である)とき、mt:seminarattachmentfiles ブロックタグで添付されたファイルのURLなどの情報が出力できるようになります。
各セミナーに対する個別ページを公開するには、モデル「セミナー」に対する「ビュー」を作成し、URLマッピングを作成します。具体的な方法については、下記のページを参照してください。