>  기사  >  PHP 프레임워크  >  thinkphp m과 d의 차이점

thinkphp m과 d의 차이점

步履不停
步履不停원래의
2019-06-13 09:09:443325검색

thinkphp m과 d의 차이점

인스턴스화 과정에서 D 메소드와 M 메소드가 자주 사용되는데, 이 두 메소드의 차이점은 D 메소드가 각 데이터 테이블에 대해 모델 클래스를 정의하지 않고 모델을 인스턴스화한다는 것입니다. 정의된 모델 클래스를 찾지 못하면 M 메서드가 자동으로 호출됩니다. 일반인의 관점에서 보면 M 인스턴스화 매개변수는 데이터베이스의 테이블 이름입니다. D는 Model 폴더

例如:$user = new UserModel();
等价于$user = D('user');
如果实例化的是一个空模型
例如 $Demo = new Model();
那么它等价于 $Demo = M();

에 생성된 모델 파일을 인스턴스화합니다. D와 M의 주요 차이점은: M 메서드는 모델 클래스 파일을 생성할 필요가 없으며 M 메서드는 모델 클래스를 읽지 않습니다. , 따라서 기본적으로 자동 확인은 비활성화되어 있지만 동적 할당을 통해 수행할 수 있으며 D 메서드는 모델 클래스를 생성해야 합니다. 다음 두 가지 방법을 사용하여 데이터 테이블의 매핑 개체를 만들 수 있습니다. 첫 번째는 $Test = D('Test') 두 번째는 $Test = new Model('Test')입니다. 지도 데이터 선택, 삽입, 삭제, 업데이트 작업은 데이터 검증에서 매우 다릅니다. 모델을 인스턴스화하는 첫 번째 방법을 사용하면 데이터 확인 기능이 제공됩니다. 제목을 입력하지 않으면 "제목을 입력하세요"라는 메시지가 표시됩니다. " (이것은 tp에서 제공하는 자동 검증 기능입니다. 물론 해당 모델에서 검증 조건을 정의해야 합니다.) 두 번째 유형을 사용하면 사용할 수 없습니다... 또 다른 차이점이 있습니다. $trueTableName을 사용하려면 $test=d('test')를 사용하면 쿼리가 테스트 테이블이라는 의미입니다. $test=m('test')를 사용하면 쿼리의 데이터 쪽이 think_test라는 의미입니다. . thinkphp2.0 버전 테스트에는 위의 문제가 있습니다

일반인의 용어로: D는 모델 파일을 기반으로 모델을 인스턴스화하는 것입니다. M은 해당 Model 파일이 존재하지 않더라도 Model 메소드(ThinkPHP 기본 클래스)를 직접 인스턴스화하여 Model 객체를 동적으로 인스턴스화합니다.

A Action 클래스 라이브러리를 빠르게 인스턴스화합니다. B 실행 동작 클래스 C 구성 매개변수 액세스 방법 D Model을 빠르게 인스턴스화합니다. 클래스 라이브러리 F 빠르고 간단한 텍스트 데이터 액세스 방법 L 언어 매개변수 액세스 방법 M 빠른 고성능 인스턴스화 모델 R 빠른 원격 호출 액션 클래스 방법 S 빠른 캐시 액세스 방법 U URL 동적 생성 및 리디렉션 방법 W 빠른 위젯 출력 방법 D 함수 인스턴스화 현재 프로젝트의 Lib/Model 아래에 있는 모듈입니다. 모듈이 존재하지 않으면 인스턴스화된 Model의 객체를 직접 반환한다(M() 함수와 의미가 동일). 그리고 M은 모델을 인스턴스화하는 객체만 반환합니다. $name 매개변수는 데이터베이스에 대한 작업을 처리하기 위해 데이터베이스의 테이블 이름으로 사용됩니다.

ThinkPHP 관련 기술 기사를 더 보려면 ThinkPHP 사용 튜토리얼 칼럼을 방문하여 알아보세요!

위 내용은 thinkphp m과 d의 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.