很長一段時間,腦海裏沒有模型和控制器的區別,幾乎把全部代碼都敲在控制器裏邊了。 php
模型類的做用大多數狀況是操做數據表的,若是按照系統的規範來命名模型類的話,大多數狀況下是能夠自動對應數據表。 數據庫
最經常使用的一個數據表定義:就是你當前創建的模型名稱並非你所對應的表,這時候只須要使用一個數據表名稱的屬性tableName,這個屬性定義不須要表前綴。 3d
例如: code
class CategoryModel extends Model {
htm
protected $tableName = 'categories';
blog
}
get
這時候CategoryModel所對應得數據表名不是
Category,而是categories。 it
若是你的表名是沒有前綴的,那麼你須要tablePrefix這個屬性來定義:
class CategoryModel extends Model {
protected $
tablePrefix=‘’;
}
爲何必定要配置? 是由於,若是你配置這個屬性的話,ThinkPhp會自動調取當前配置文件中的
DB_PREFIX
。
這時候你也許會發現,既然沒有表前綴的都有屬性,那麼一些特別的表,前綴和普通表前綴不一樣,怎麼辦?
Thinkphp也想到了這個問題,因此就有了$trueTableName屬性,注意:這個屬性須要完整的表名定義。
class CategoryModel extends Model {
protected $trueTableName
=‘cate_category’;
}
最後一個屬性
$dbname,是使用另外一個數據庫裏的表。例如cate.cate.category
class CategoryModel extends Model {
protected $trueTableName
=‘cate_category’;
protected $dbname='cate';
}
模型定義問題大體就這些了。