前提是你數(shù)據(jù)源配置正確.
10年積累的網(wǎng)站建設、成都網(wǎng)站設計經(jīng)驗,可以快速應對客戶對網(wǎng)站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡服務。我雖然不認識你,你也不認識我。但先制作網(wǎng)站后付款的網(wǎng)站建設流程,更有南靖免費網(wǎng)站建設讓你可以放心的選擇與我們合作。
映射文件中:
注意看class屬性:
name是你的model類(包名+類名)
table是你數(shù)據(jù)庫里的表名
catalog是你的數(shù)據(jù)庫名
......
ThinkPHP的字段映射功能可以讓你在表單中隱藏真正的數(shù)據(jù)表字段,而不用擔心放棄自動創(chuàng)建表單對象的功能,假設我們的User表里面有username和email字段,我們需要映射成另外的字段,定義方式如下:
Class
UserModel
extends
Model{
protected
$_map
=
array(
'name'
='username',
//
把表單中name映射到數(shù)據(jù)表的username字段
'mail'
='email',
//
把表單中的mail映射到數(shù)據(jù)表的email字段
);
}
這樣,在表單里面就可以直接使用name和mail名稱作為表單數(shù)據(jù)提交了。在保存的時候會字段轉換成定義的實際數(shù)據(jù)表字段。字段映射還可以支持對主鍵的映射。
如果我們需要把數(shù)據(jù)庫中的數(shù)據(jù)顯示在表單中,并且也支持字段映射的話,需要對查詢的數(shù)據(jù)進行一下處理,處理方式是調用Model類的parseFieldsMap方法,例如:
//
實例化User模型
$User
=
M('User');
$data
=
$User-find(3);
這個時候取出的data數(shù)據(jù)包含的是實際的username和email字段,為了方便便表單輸出,我們需要處理成字段映射顯示在表單中,就需要使用下面的代碼處理:
$data
=
$User-parseFieldsMap($data);
這樣一來,data數(shù)據(jù)中就包含了name和mail字段數(shù)據(jù)了,而不再有username和email字段數(shù)據(jù)了。
4
數(shù)據(jù)映射模式使您能更好的組織你的應用程序與數(shù)據(jù)庫進行交互。
數(shù)據(jù)映射模式將對象的屬性與存儲它們的表字段間的結合密度降低。數(shù)據(jù)映射模式的本質就是一個類,它映射或是翻譯類的屬性或是方法到數(shù)據(jù)庫的相應字段,反之亦然。
數(shù)據(jù)映射的作用(工作)就在于能對雙方所呈現(xiàn)出的信息的理解,并能對信息的存取進行控制,如根據(jù)存儲在數(shù)據(jù)表中的信息重建新的域對象,或是用域對象的信息來更新或刪除數(shù)據(jù)表中的相關數(shù)據(jù)。
對于面向對象代碼與數(shù)據(jù)庫表和字段間的映射關系的存儲有多種實現(xiàn)方式。其中一種可能的方法就通過手工編碼將這種映射關系存儲在數(shù)據(jù)映射類中。
另一種可選的方法是用PHP的數(shù)組并將其編碼為類本身。這個類也能外源獲取數(shù)據(jù),如INI或是XML文件。