hasManyの一対多対応は、「1」の側のデータに、関連する「多」側のデータを結びつけます。
サンプルで言えば、
MySampleData側でデータを取り出すと、そのデータに関連付けられた
GuestBook側のデータが一書に取り出される、という形です。あくまで
MySampleDataが主であり、
GuestBookは従です。
これを逆向きに関連付けるのが、
belongsToです。すなわち、従であった「多」側から、それが結び付けられている主である「一」側のデータを取り出すためのものです。MySQLなどで「
LEFT JOIN」と呼ばれるもので、
hasOneや
hasManyとは逆向きに結びつきがたぐられます。
この
belongsToは、一対多の「多」側(つまり主
Modelではなく従
Model側)に用意します。サンプルでは、
GuestBookクラス側に用意をします。下のリスト欄に、簡単な利用例をあげておきました。このように、
public $belongsTo = "関連するModel名;
という形で
$belongsTo変数を用意するだけで関連付けが行われるようになります。
実際に、
guest_booksにブラウザからアクセスをしてみてください。データの一覧が表示されますが、その「
My Sample Data」という欄(
my_sample_data_idの項目)には、
ID番号ではなく、関連付けられた
MySampleDataの名前が表示されています。
GuestBookには、名前の情報などは入っていませんでした。
belongsToにより、関連付けられている
MySampleDataの項目から名前をピックアップして表示していることがわかるでしょう。