cakephpのmodelでテーブルを指定する

on 12 2, 2009

00_cake

単純なことだけど、忘れてしまいそうなのでメモ。
テーブル名は通常modelで指定した単語の複数形のものが自動的に認識されます。
しかし、私たちはジャパニーズですので、単語の複数形などを考えたり調べたりする方が
手間だったりします。

その悩みを解決する方法、「英単語の辞書をひけばいい」ではなくテーブル名を
指定してあげることです。

通常

ユーザーを管理する「User」モデルは、通常「app/models」の中に
「user.php」というファイルを設けます。

<?php
//app/models/user.php
class User extends AppModel {
	var $name='User';
}
?>

そうすると、cakephpは自動的にデータベースの「users」という複数形の
フィールドを選択して読みに行きます。

英語名がわからんときや、創作単語の時

複数形が分かるときはいいのですが「hogehoge」など自分単語だったり、
単純に「s」が付く複数形じゃないかもしれない単語は調べんのがマンドクサイので
models内で直接することもできます。

<?php
//app/models/hogehoge.php
class Hogehoge extends AppModel {
	var $name='Hogehoge';
	var $useTable='Hogehoge';		//Hogehogeテーブルを利用する 
}
?>

ただ、cakephpのエラー画面では、何処にどんなファイルを置いたらよいか表示されるので、
それほど単語名を気にする必要はないのかもしれません。
というか、触り始めてから1週間未満なので使いながら良い方法を模索したいと思います。

Leave a Reply