この
hasOneは、常に1つのデータに別の
Modelの1つのデータが関連付けられます。同時に複数の項目を関連付けることはできません。しかし、1つのデータに、別の
Modelの多数のデータが関連付けられることはよくあります。
例えば、今回の例では、2つのモデルの役割を以下のように考えるとしましょう。
MySampleData――各ユーザーの情報の管理
GuestBook――投稿したメッセージの管理
GuestBookには、投稿した人の情報を
MySampleDataから引っ張ってきて設定するわけですね。そうすると、1つの
MySampleDataにいくつもの
GuestBookのデータが関連付けられることになります。それぞれのユーザーは、いくつもメッセージを投稿をできるのですから。
こうした1つのデータに多数のでーたが関連付けられる状態を「
一対多対応」といいます。これを実現するのが「
hasMany」という設定です。下のリスト欄に、
MySampleDataの修正例を挙げておきました。
hasManyは、
Modelクラスに、
public $hasMany = "関連するModel名";
という形で変数を用意することで設定します。先ほどと同じように
MySampleDataの項目の「
View」ボタンを押して内容を表示してみてください。関連する
GuestBookが複数あった場合、それらがすべて表示されます。