thinkphp学習モデルデータテーブル名定義

7698 ワード

モデルクラスは通常、システムのThinkModelクラスまたはそのサブクラスを継承する必要があります.次はHomeModelUserModelクラスの定義です.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'; }