thinkphp学習モデルデータテーブル名定義
7698 ワード
モデルクラスは通常、システムのThinkModelクラスまたはそのサブクラスを継承する必要があります.次はHomeModelUserModelクラスの定義です.
}
Homeの下のModelネーミングスペースを定義し、Thinkの下のModelクラスを導入して継承します.
モデルクラスの命名規則は、接頭辞を除いたデータテーブル名で、アルパカ法で命名され、頭文字が大文字で、モデルレイヤの名前(デフォルトではModel)が付けられます.たとえば、次のようになります.
モデル名
約束対応データテーブル(データベースの接頭辞定義がthink_)であると仮定)
UserModel
think_user
UserTypeModel
think_user_type
上記のシステムのルールが一致しない場合は、Modelクラスのデータテーブル名プロパティを設定して、対応するデータテーブルが見つかることを確認する必要があります.
ThinkPHPのモデルには、データテーブル名に関するいくつかの属性定義があります.
ツールバーの
説明
tablePrefix
モデルに対応するデータテーブルの接頭辞を定義し、定義されていない場合はプロファイルのDB_を取得します.PREFIXパラメータ
tableName
テーブル接頭辞を含まないデータ・テーブル名は、一般的にはデフォルトでモデル名と同じです.テーブル名が現在のモデル・クラスの名前と異なる場合にのみ定義する必要があります.
trueTableName
接頭辞を含むデータ・テーブル名、すなわちデータベース内の実際のテーブル名です.この名前は設定する必要はありません.上記のルールが適用されない場合、または特別な場合にのみ設定する必要があります.
dbName
モデルの現在の対応するデータベース名を定義します.現在のモデルクラスの対応するデータベース名とプロファイルが異なる場合にのみ定義する必要があります.
これは一般的な定義に基づいて直接クラス名対応を確立し、もちろん特殊な対応しない処理もある.
1、
テーブル名が
namespaceHome\Model;
useThink\Model;
classUserModel extendsModel {
}
Homeの下のModelネーミングスペースを定義し、Thinkの下のModelクラスを導入して継承します.
モデルクラスの命名規則は、接頭辞を除いたデータテーブル名で、アルパカ法で命名され、頭文字が大文字で、モデルレイヤの名前(デフォルトではModel)が付けられます.たとえば、次のようになります.
モデル名
約束対応データテーブル(データベースの接頭辞定義がthink_)であると仮定)
UserModel
think_user
UserTypeModel
think_user_type
上記のシステムのルールが一致しない場合は、Modelクラスのデータテーブル名プロパティを設定して、対応するデータテーブルが見つかることを確認する必要があります.
ThinkPHPのモデルには、データテーブル名に関するいくつかの属性定義があります.
ツールバーの
説明
tablePrefix
モデルに対応するデータテーブルの接頭辞を定義し、定義されていない場合はプロファイルのDB_を取得します.PREFIXパラメータ
tableName
テーブル接頭辞を含まないデータ・テーブル名は、一般的にはデフォルトでモデル名と同じです.テーブル名が現在のモデル・クラスの名前と異なる場合にのみ定義する必要があります.
trueTableName
接頭辞を含むデータ・テーブル名、すなわちデータベース内の実際のテーブル名です.この名前は設定する必要はありません.上記のルールが適用されない場合、または特別な場合にのみ設定する必要があります.
dbName
モデルの現在の対応するデータベース名を定義します.現在のモデルクラスの対応するデータベース名とプロファイルが異なる場合にのみ定義する必要があります.
これは一般的な定義に基づいて直接クラス名対応を確立し、もちろん特殊な対応しない処理もある.
1、
テーブル名が
think_categories CategoryModel
(プロファイルでDB_PREFIX
をthink_と したと )の 、
に の がない はtableNameでクラス で の を すればよい
(この の には、テーブルの think_
を ける はありません)namespace Home\Model;
use Think\Model;
class CategoryModelextends Model{
protected $tableName= 'categories';
}
2
、
CategoryModelモデルの する が なデータテーブルがtop_category
である 、データテーブルの を するだけです.namespaceHome\Model;
useThink\Model;
classCategoryModel extendsModel {
protected $tablePrefix= 'top_';
}
3、
データテーブルが category
で、 がない は、tablePrefix
を の に できます.
(テーブル がない は する があります.そうしないと、 のプロファイルのDB_PREFIX
が されます.)namespaceHome\Model;
useThink\Model;
classCategoryModel extendsModel {
protected $tablePrefix= '';
}
4
、
の な では、 が なデータテーブルはtop_categories
です.この 、trueTableName
のプロパティを する があります.
(trueTableName
には、 なテーブル が です.)namespaceHome\Model;
useThink\Model;
classCategoryModel extendsModel {
protected $trueTableName= 'top_categories';
}
5
、
データテーブルの に えて、 のデータベース のデータテーブルを するためのデータベースを することもできます.たとえば、top.top_categories
です.
(システムのルールではtableNameは に されますが、trueTableName のデータテーブル はそのままです.)namespace Home\Model;
use Think\Model;
class CategoryModelextends Model{
protected $trueTableName= 'top_categories';
protected $dbName= 'top';
}