libro
www.tuyano.com
初心者のためのCakePHP 1.3 プログラミング入門

複数モデルを連携する (1/6)

作成:2010-02-20 17:05
更新:2011-12-22 17:24

■Contentdataモデルの作成

データベースというのは、一般に「1種類のデータを扱うだけ」ということはあまりありません、何種類ものデータを保管し、それらを連携して処理していくことのほうが多いでしょう。

たとえば簡単なパーソナルデータの管理を行う場合、住所録のようなデータもあれば、スケジュール帳のようなデータもあるでしょう。そうして複数のデータを扱うようになれば、「スケジュールに、投稿したユーザー情報も保管して、その人の住所録も表示されるようにしたい」というように、それらを連携して扱いたい、と思うのは自然な流れでしょう。CakePHPで、同様に「複数のモデルを連携して扱う」という場合について考えてみましょう。

まずは、前回まで使っていた「Mydata」の他に、もう1つモデルを用意することにしましょう。SQLiteで、Mydataが保管してあるデータベースファイルを開き、新たに「Contentdatas」というテーブルを作成します。これは簡単なメモ書きのデータです。以下のような形のものにしましょう。

Contentdatasテーブルの内容
id――個々のデータに割り当てるID番号。(プライマリキー)
mydata_id――関連するMydataのデータのID番号を保管するもの。
date――日時の情報を保管するもの。
title――タイトルのテキスト。
content――内容(テキスト)。

下のリストを参考に、SQLiteでテーブルを作成してください。そして、「models」内に、「contentdata.php」というファイルを新たに作成し、やはり下のリストを参考にモデルを作成しましょう。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

※テーブル作成のSQL文

create table contentdatas (
	id integer not null primary key,
	mydata_id int,
	date datetime,
	title varchar(255),
	content text);


※contentdata.phpのソースコード

<?php
class Contentdata extends AppModel {

	// まだ何もない

}
※関連コンテンツ

「初心者のためのCakePHP 1.3 プログラミング入門」に戻る