ThinkPHP執行個體化模型的四種方法概述,thinkphp四種方法_PHP教程

來源:互聯網
上載者:User

ThinkPHP執行個體化模型的四種方法概述,thinkphp四種方法


本文講述了ThinkPHP執行個體化模型的四種方法,對於ThinkPHP程式設計來說有非常重要的應用。具體如下:

1、建立一個基本模型:執行個體化一個系統內建的資料庫操作類

Test.Model.class.php頁面代碼如下:

  class TestModel extends Model{     }

UserAction.class.php頁面代碼如下:

  function test(){    $test=M('test');//表示執行個體化的是內建的Model類,並且傳入test值表示操作的是test表    //等同於$test=new TestModel();    $test=$test->select();    print_r($test);//輸出test表中所有資料  } 

2、執行個體化一個自訂模型

如果資料庫操作比較複雜,就需要在自訂的Model類中添加一些自訂的資料庫操作方法

UserModel.class.php頁面代碼如下:

  class UserModel extends Model{    function pyj(){      echo 'pengyanjie';      //其它的一些資料庫操作方法    }  }

UserAction.class.php頁面代碼如下:

  function user(){    $user=D('User');//執行個體化自訂的資料庫操作類    //等同於$user=new UserModel();    $user->pyj();//調用User模型中的pyj方法  } 

或者,你需要執行個體化一個表,同時呢,執行個體化一個自己寫的自訂的資料庫操作類,代碼如下:

  function love(){    $love=M('test','UserModel');      //$love=new UserModel('test');     $list=$love->select();    dump($list);    $love->pyj();  } 

3、執行個體化一個使用者模型

UserAction.class.php頁面代碼如下:

  function user(){    $user=new UserModel();//等同於$user=D('User');    $list=$user->select();    dump($list);    echo $user->aa();  }

UserModel.class.php頁面代碼如下:

該類名user與表名user相對應,所以在UserAction中執行個體化這個模型的時候就不需要再額外的傳表名了,代碼如下:

  class UserModel extends Model{    function aa(){      echo 'pengyanjie';    }  }

這個第三種執行個體化模型方法與第二種的區別在於:在你的商務邏輯當中,通常情況下會有一些公用的商務邏輯,那你用第二種M('表名','模型名');如M('user','CommonModel')會更方便;

第三種執行個體化模型方法適于于針對所動作表的更加複雜的商務邏輯,但是它不需要使用到公用商務邏輯。(它的商務邏輯,針對使用者表,它是唯一的,並且不需要在其它模型當中使用)。

4、執行個體化一個空模型,它並不知道你要執行個體化操作時用到的是哪張表。

  $user=new Model();//等價與$user=M();  $list=$user->query('select * from think_user'); //使用傳統的sql語句的方式,如果這樣的話,就必須要加表首碼   dump($list);

附:$user=new UserModel();與$user=D('user');的區別:

(1)、D方法可以自動檢測模型類,不存在時,它會拋出一個異常。同時對於已執行個體化過的模型,不會去重複執行個體化。預設的D方法,只能應用於當前項目下面的模型。

(2)、如果說,我這是前台應用,但是我想執行個體化後台項目的模型可以用D搞定。

$user=D('admin','user');//會去自動找admin分組下的user模型類

或者:

$user=D('admin.user');

希望本文所述執行個體對大家ThinkPHP程式設計有所協助。


thinkphp執行個體化模型問題

在你自己另外產生的的設定檔中加上你串連資料庫的資訊。
應該是Conf目錄下的config.php檔案中加上你串連資料庫的資訊。
 

剛接觸thinkphp,我執行個體化模型類後,就報錯,下面是My Code,麻煩大家幫我看一下,啦

'URL_MODEL' =>1
是不是1後面少了英文狀態下的逗號。
記得刪除runtime檔案夾。
 

http://www.bkjia.com/PHPjc/868236.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/868236.htmlTechArticleThinkPHP執行個體化模型的四種方法概述,thinkphp四種方法 本文講述了ThinkPHP執行個體化模型的四種方法,對於ThinkPHP程式設計來說有非常重要的應用。...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.