ThinkPHP 실례화 모델의 네 가지 방법 개술

3135 단어
본고는 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. 사용자 정의 모델을 실례화한다.
만약 데이터베이스 조작이 비교적 복잡하다면, 사용자 정의 모델 클래스에 사용자 정의 데이터베이스 조작 방법을 추가해야 한다
   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 프로그램 설계에 도움이 되었으면 합니다.

좋은 웹페이지 즐겨찾기