>  기사  >  백엔드 개발  >  ThinkPHP 프레임워크의 단축키 M과 D의 차이점

ThinkPHP 프레임워크의 단축키 M과 D의 차이점

巴扎黑
巴扎黑원래의
2016-11-24 14:33:471462검색

D()와 M() 메서드의 차이점:

D와 M의 주요 차이점은

M 메서드는 모델 클래스 파일을 생성할 필요가 없으며, M 메소드는 모델 클래스를 읽지 않으므로 기본적으로 자동 검증이 유효하지 않지만 동적 할당

을 통해 달성할 수 있으며 D 메소드는 모델 클래스를 생성해야 합니다.

다음 두 가지 방법을 사용하여 데이터 테이블의 매핑 개체를 만들 수 있습니다.

첫 번째 방법: $Test = D('Test')

두 번째 방법 : $Test = new Model('Test')

둘 다 데이터에 대한 선택, 삽입, 삭제 및 업데이트 작업을 수행할 수 있지만

데이터 확인

첫 번째 방법을 사용하여 모델을 인스턴스화하면 데이터 확인 기능이 제공됩니다. 제목을 입력하지 않으면 "제목을 입력하세요"라는 메시지가 표시됩니다. (이것은 tp에서 제공하는 자동 확인 기능입니다. 물론 검증 조건은 모델에 정의되어 있습니다.

두 번째 유형을 사용하는 경우 이 데이터 검증 기능이 없으므로 수동으로 검증해야 합니다.

요약은 다음과 같습니다.

D 함수는 현재 프로젝트의 Lib/Model 아래에 있는 모듈을 인스턴스화합니다.

모듈이 없으면 인스턴스화된 Model의 객체를 직접 반환합니다(M() 함수와 의미가 동일합니다).
그리고 M은 모델을 인스턴스화하는 객체만 반환합니다. $name 매개변수는 데이터베이스에 대한 작업을 처리하기 위해 데이터베이스의 테이블 이름으로 사용됩니다.

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

더 간단하게 말하면:

M 인스턴스화 매개변수는 데이터베이스의 테이블 이름입니다.
D는 Model 폴더 아래에 생성한 모델 파일을 인스턴스화합니다.
D는 모델을 정의하지 않아도 시스템이 자동으로 모델을 정의해 주기 때문에 간단한 데이터 입출력을 할 수 있다는 뜻이다.
각 액션 파일은 모델 파일과 일치해야 합니다.
예: $Form = D("User")는 $Form = new UserModel()로 변경될 수 있습니다. 모델 파일 이름으로).


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