回覆列表
  • 1 # f親哦綠卡

    D和M的區別主要在於M方法不需要建立模型類檔案,M方法不會讀取模型類,所以預設情況下自動驗證是無效的,但是可以透過動態賦值的方式實現而D方法必須有建立模型類。我們可以用下面兩種方法去建立一個數據表的對映物件第一種:$Test = D(‘Test’)第二種:$Test = new Model(‘Test’)雖然這兩種都可以對資料進行select,insert,delete,udpate操作,在資料驗證上有很大的不同,用第一種方式例項一個模型就會有資料檢查功能,如果 title 沒有填寫的話就會提示 “請輸入標題” (這個是tp提供的一個自動驗證功能,當然也需要在相應的model中定義好驗證條件);如果用第二種就沒有了這個資料驗證功能,需要手動驗證。總結如下:D函式例項化的是你當前專案的Lib/Model下面的模組。如果該模組不存在的話,直接返回例項化Model的物件(意義就與M()函式相同)。而M只返回,例項化Model的物件。它的$name引數作為資料庫的表名來處理對資料庫的操作。通俗點說:D就是例項化一個基於Model檔案的Model。M則是透過直接例項化Model方法(ThinkPHP基類)來動態的例項化一個Model物件,即使這個對應的Model檔案不存在。再通俗一點說:M例項化引數是資料庫的表名。D例項化的是你自己在Model資料夾下面建立的模型檔案。D就是在你沒有定義模型的時候,系統自動幫你定義一個模型,這樣你才進行簡單的資料輸入或者輸出。每一個Action檔案都應該對應Model檔案的,如果你定義了Model的話,如:$Form = D(“User”)就可以改成$Form = new UserModel();(User是指你的模型檔名)。

  • 中秋節和大豐收的關聯?
  • 植物大戰殭屍中文版的遊戲道具?