エクスプレスの使い方_データベースどうしを関連付ける

別のデータオブジェクト(箱)どうしを関連付ける

たくさんデータオブジェクト(箱)を作ったので、これらを関連付けてみます。

「ねこ」に「飼い主」を関連付けします。

「ねこ」をクリックします。

アソシエーションを追加する

関連付けは「アソシエーション」で行います。

左の「アソシエーション」をクリックして、右上の「アソシエーションを追加」をクリックします。

入力画面になります。

タイプはこの中から選びます。

1なら一つだけ選択、多なら複数選択ができます。

とりあえず多対多にしました。

ターゲットオブジェクトを選択して、保存します。

アソシエーションが追加できました。

フォームにもアソシエーションを追加する

今追加したアソシエーションを、フォームにも追加します。

左の「フォーム」をクリックし、Form をクリックします。

すでに属性が追加されているところに、さらに追加します。「+」ボタンを押します。

編集画面が開きます。アソシエーションタブを開くと、ねこ>飼い主が追加されているのでクリックします。

フォームに飼い主が追加できました。

検索 / 一覧にも表示させるようにする

管理画面と詳細ブロックで表示できるように、「検索 / 一覧をカスタマイズ」も設定します。

アソシエーションという項目が増えて、「飼い主」が追加されています。

チェックを入れて、保存します。

関連付いたか確認する

終わったら、「管理画面>エクスプレス」を開いて、「ねこ」をクリックしてみます。

項目「飼い主」が追加されています。

まだ関連付けをしただけで、個々の設定をしていないので、空欄です。

個々の関連付けをする

ミケちゃんの飼い主を設定するために、ミケちゃんをクリックして詳細画面を開きました。

右上の「編集」をクリックします。

編集画面になります。飼い主が選択できる状態になっています。

 - - -

ちなみに、関連付けした項目は選択必須です。選択せずに保存しようとするとエラーになります。

サトウさんを選択して、右下の「ねこを保存」をクリックします。

ミケちゃんの飼い主に、サトウさんが追加されました。

双方から行き来できるようにする

もう一度ミケちゃんをクリックしてみると、飼い主にサトウさんが設定されています。

そして、サトウさんの文字がリンクになっているので、クリックしてみます。

すると、「飼い主」の「サトウさん」の詳細をみることができます。

ここで、飼い主とねことの、お互いのリンクが欲しいところです。なので、飼い主にも設定をします。

「管理画面>システムと設定>エクスプレス」から、「飼い主」をクリックします。

アソシエーションをクリックして確認します。

さきほど「ねこ」から関連付けをしてあるので、飼い主側にも反映されています。

ねこのときと同じように、フォームに「ねこ」を追加しておきます。

すると、「飼い主」の詳細から「ねこ」へのリンクができています。

お互いを行き来して確認ができるようになりました。

一覧にもアソシエーションを追加する

ページに表示してある一覧ブロックにも、飼い主を追加してみます。

編集画面で、飼い主にもチェックを入れて、保存します。

アソシエーションという項目は出ないんですね。基本プロパティに含まれています。

基本プロパティとカスタム属性が重複しているときは、基本プロパティにチェックが入っていれば大丈夫です。

飼い主の項目が追加できました。

色々設定してみました。(*^^*)

項目をマスクするには

もし、詳細を表示せずに隠しておきたいときには、名前マスクを設定します。

「遊び場」の詳細をマスクしてみることにします。

「管理画面>システムと設定>エクスプレス」から、「遊び場」をクリックして開きます。

エンティティ編集をクリックして編集画面を開き、名前マスクに文字を入力します。

 

入力欄の下に、入力例(エントリー %name% など)が示されているのですが、なぜかこの通りにやってもうまくいきませんでした。画像のように普通に言葉を入力すればOKでした。

マスクを設定した「遊び場」のエントリー閲覧画面では、マスクされずに詳細を見ることができますが、

他の場所では遊び場の詳細が、マスクに設定した言葉で隠されています。

一覧ブロックや詳細ブロックでも隠されます。

…でも確か、はじめにデータオブジェクトを追加したときに、これが詳細を隠す設定だと知らずに例のように入力したら、詳細が出てこなくて困った記憶があります。

新規追加のときなら%入の書き方でいけるのかな?と思って試してみました。

結果、うまくいきました。

何がどうなっているのか、わかりません。もしどちらかでうまくいかなければ、もう一方で入力すればいいんだと思います。(-_-)

- - -

名前マスクの入力方法は2つ。

入力例のとおり、「エントリー %name%」の書き方。

または、マスクに使いたい言葉だけ普通に入力。

私の実験結果です。

名前マスクを設定したら、そのデータオブジェクト(箱)以外からは詳細がいっさい見えないので注意

マスクのときに気をつけるのは、「遊び場」にマスクを設定したら、「遊び場」からでないと詳細が見えないこと。

「ねこ」からの編集がこんな感じになります。こうなると、遊び場は「遊び場」から、おやつは「おやつ」から設定しなければいけなくなるので面倒です。

一覧表示です。

 - - -

マスクの使い所はたぶん、個人情報を隠すような使い方なのかな?と思います。

名前をマスクして、年齢や性別や地域だけ表示するみたいな感じ。

個人が趣味で作るサイトではあまり使わない機能かなと思います。