PHPのRuby on Railsクローンのフレームワーク Akelos PHPをいじってみた出来事のメモ。

Akelosをいじってみるメモ帳

Akelos PHP Blogチュートリアル一覧(全18記事)
Akelos PHP ユーザ認証チュートリアル一覧(全19記事)

2008年06月11日

Akelos Blogチュートリアル 16.コメント機能を追加する テーブルの関連付け

コメント機能の追加をします。

まずテーブルの関連付けをします。
1対多の関係として、先ほどの記事1つ1つに対して複数のコメントを付けるモデルを作ります。
どんどん行きますよー

まず、データの保存する先となるモデルを作ります。
コマンドラインで以下を入力してください。
-------------------------------------------------------

C:\xampp\htdocs\projects\blog>c:\xampp\php\php.exe script\generate model Comment

-------------------------------------------------------
モデルとしてCommentというのを作れと指示していますね。

C:\xampp\htdocs\projects\blog\app\models
のディレクトリにcomment.php というのが増えていると思います。
メモ帳などで開いてください。
空のクラスがありますので、その中に1行加えましょう。
-------------------------------------------------------
var $belongs_to = 'post';
-------------------------------------------------------
そのまんま読んで字の如く「 post に属する 」とだけ書きます。
つまりこのCommentモデルはPostモデルを親として見て、関連づけますよということですね。

続いて
C:\xampp\htdocs\projects\blog\app\models\post.php
を開いてください。
先ほどvalidate()を書いていますが、その前にやっぱり一行加えましょう。
-------------------------------------------------------
var $has_many = 'comments';
-------------------------------------------------------
これも読んで字の如く「commentsをたくさん持ちます」となりますね。
つまりPostの子供(0〜複数)としてCommentsを持ちますよ。と関連づけています。

さらに、Commentのデータベースのテーブル内容を定義しましょう。
インストーラークラスのcomment用のファイルがありますので開いてください。
C:\xampp\htdocs\projects\blog\app\installers\comment_installer.php

テーブル定義を書きます。
-------------------------------------------------------
  function up_1()
  {
    $this->createTable('comments',
     'id,'.
     'body,'.
     'post_id'
     );

  }
-------------------------------------------------------
こんな感じで。
ちなみにxxxx_id というところは関連付けされるだろうと想定されて、勝手にMySQLのINDEXにしてくれます。

※蛇足
チュートリアルでは、デフォルト値の埋め込みとかしてますが、実際することって多いんですかね・・・日本語混ざると言語制御の範囲外になるんで、問題も起きやすい気もするから、マルチバイト環境下(日本語環境下)では、やめたほうがいいんじゃないかなー。詳しく調べてないから、よくわからん。後日要調査。蛇足終わり※

マイグレーションしてデータベースに反映させます。
コマンドラインで以下を入れてください。
-------------------------------------------------------

C:\xampp\htdocs\projects\blog>c:\xampp\php\php.exe script\migrate comment install

-------------------------------------------------------
posted by AMUAMU at 23:06| Comment(0) | TrackBack(1) | チュートリアル | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック

celebrity photos
Excerpt: One of the main draws for gaming events are cosplay shows and booth babes. Let’ s be honest here- wh..
Weblog: celebrity photos
Tracked: 2009-05-11 05:39
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。