5 回答

TA貢獻(xiàn)1830條經(jīng)驗(yàn) 獲得超3個(gè)贊
Thinkphp模型類(lèi)的主要作用是:完成業(yè)務(wù)邏輯處理,包括對(duì)數(shù)據(jù)表的增刪改查(CUED
?。┎僮?。對(duì)處理的數(shù)據(jù)進(jìn)行封裝;對(duì)字段及屬性進(jìn)行驗(yàn)證;完成對(duì)象及屬性的過(guò)濾等功能。
Thinkphp模型類(lèi)的命名規(guī)則:使用駝峰法命名,并且首字母大寫(xiě),然后加上模型層的名稱(chēng)。

TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超5個(gè)贊
一般情況下是一個(gè)表對(duì)應(yīng)一個(gè)model類(lèi),不用也是可以的。
至于你說(shuō)的簡(jiǎn)化代碼,給你舉個(gè)例子:
比如說(shuō)你有一個(gè)user表,里面有 id name pass time(登錄時(shí)間),對(duì)其的操作頁(yè)面有注冊(cè),登錄,修改密碼等等
如果你要使用M來(lái)進(jìn)行實(shí)例的話,不管是注冊(cè)還是干啥,你每次都要對(duì)提交過(guò)來(lái)的信息是否合法進(jìn)行一個(gè)驗(yàn)證,time時(shí)間每次都要使用time()函數(shù)來(lái)重新生成以下
但是如果你使用了model,使用D來(lái)實(shí)例化,這些信息的驗(yàn)證,和time()的完成都可以寫(xiě)到model中,就不用在上面說(shuō)的那些頁(yè)面當(dāng)中一一進(jìn)行操作驗(yàn)證或者添加了。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | class UserModel extends Model { //使用下面的這些可以很方面對(duì)user表進(jìn)行操作,省去了多次對(duì)表進(jìn)行操作時(shí)候所書(shū)寫(xiě)的驗(yàn)證和完成之類(lèi)的代碼。 //自動(dòng)驗(yàn)證 protected $_validate = array( array('name','require','用戶(hù)名不能為空'), array('name','','用戶(hù)名已存在',0,'unique',1), array('user_pwd','require','新密碼不能是空',0,'',2),//只更新時(shí)驗(yàn)證 ); //自動(dòng)完成 protected $_auto = array ( array('addtime','time',1,'function'), ); //上面的一些規(guī)則可以參考自動(dòng)完成和自動(dòng)驗(yàn)證的規(guī)則,需要調(diào)用函數(shù)的時(shí)候,在下面自己再添加自定義的函數(shù)
} |

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超7個(gè)贊
一般情況下是一個(gè)表對(duì)應(yīng)一個(gè)model類(lèi),不用也是可以的。
你舉個(gè)例子:
比如說(shuō)你有一個(gè)user表,里面有 id name pass time(登錄時(shí)間),對(duì)其的操作頁(yè)面有注冊(cè),登錄,修改密碼等等
如果你要使用M來(lái)進(jìn)行實(shí)例的話,不管是注冊(cè)還是干啥,你每次都要對(duì)提交過(guò)來(lái)的信息是否合法進(jìn)行一個(gè)驗(yàn)證,time時(shí)間每次都要使用time()函數(shù)來(lái)重新生成以下
但是如果你使用了model,使用D來(lái)實(shí)例化,這些信息的驗(yàn)證,和time()的完成都可以寫(xiě)到model中,就不用在上面說(shuō)的那些頁(yè)面當(dāng)中一一進(jìn)行操作驗(yàn)證或者添加了。class UserModel extends Model{ //使用下面的這些可以很方面對(duì)user表進(jìn)行操作,省去了多次對(duì)表進(jìn)行操作時(shí)候所書(shū)寫(xiě)的驗(yàn)證和完成之類(lèi)的代碼。 //自動(dòng)驗(yàn)證 protected $_validate = array( array('name','require','用戶(hù)名不能為空'), array('name','','用戶(hù)名已存在',0,'unique',1), array('user_pwd','require','新密碼不能是空',0,'',2),//只更新時(shí)驗(yàn)證 ); //自動(dòng)完成 protected $_auto = array ( array('addtime','time',1,'function'), ); //上面的一些規(guī)則可以參考自動(dòng)完成和自動(dòng)驗(yàn)證的規(guī)則,需要調(diào)用函數(shù)的時(shí)候,在下面自己再添加自定義的函數(shù) }

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超6個(gè)贊
Model 負(fù)責(zé)與數(shù)據(jù)庫(kù)進(jìn)行交互,所有與數(shù)據(jù)庫(kù)進(jìn)行交互的業(yè)務(wù)邏輯都應(yīng)該寫(xiě)在Model中。
一般一個(gè)Model 類(lèi) 將對(duì)應(yīng)著數(shù)據(jù)庫(kù)中的一張表。

TA貢獻(xiàn)1921條經(jīng)驗(yàn) 獲得超9個(gè)贊
以tp3.2.x為例,定義:
1 2 3 4 5 6 | namespace Home\Model; use Think\Model; class CategoryModel extends Model { protected $trueTableName = 'top_categories'; protected $dbName = 'top'; } |
調(diào)用:
1 2 3 | $User = new \Home\Model\CategoryModel(); // 帶參數(shù)實(shí)例化 $New = new \Home\Model\NewModel('blog','think_',$connection); |
- 5 回答
- 0 關(guān)注
- 886 瀏覽
添加回答
舉報(bào)