ThinkORM에 새로 추가된 가상 모델 기능 분석
이 글은 ThinkORM에 새로 추가된 가상 모델 기능을 소개하고 분석하기 위해 thinkphp Framework튜토리얼 칼럼에서 제공하는 글입니다. 도움이 필요한 친구들에게 도움이 되길 바랍니다!
최신 버전의 ThinkORM에는 가상 모델 기능이 추가되었습니다. 이 기능은 ThinkPHP 버전 3.2에 등장했지만 새 버전의 가상 모델 기능이 더욱 강력해졌습니다.
이전에는 가상 모델 작업이 필요한 경우 모델 클래스가 Model 클래스를 상속한 다음 자체 비즈니스 로직을 캡슐화할 수 없었지만 일부 요구 사항은 충족할 수 있었지만 getter, 수정자 및 모델 관련 기능을 구현할 수 없었습니다. as :
<?php namespace app\model; class User { public function getInfo() { // 业务逻辑代码 } }
새 버전은 가상 모델 강화에 중점을 두고 있습니다. 데이터는 메모리에만 저장할 수 있으며, 데이터는 인스턴스화를 통해서만 생성할 수 있습니다. 가상 모델은 getter, 모델 이벤트를 포함한 모델의 대부분의 기능을 유지할 수 있습니다. , 반면에 Association 작업도 단위 테스트에 더 편리합니다.
가상 모델을 사용하려면 모델을 정의할 때 Virtual 특성만 도입하면 됩니다. 예:
<?php namespace app\model; use think\Model; use think\model\concern\Virtual; class User extends Model { use Virtual; public function getInfo() { // 业务逻辑代码 } public function getStatusAttr($value) { $status = [-1=>'删除',0=>'禁用',1=>'正常',2=>'待审核']; return $status[$value]; } public function setNameAttr($value) { return strtolower($value); } public function blog() { return $this->hasMany('Blog'); } }
데이터베이스에 해당 사용자 테이블이 필요하지 않지만 관련 데이터 작업을 계속 수행할 수 있습니다. 다음은 몇 가지 간단한 예입니다.
// 创建数据 $data = [ 'id' => 8, 'name' => 'Think', 'status' => 1, ]; $user = User::create($data); // 获取数据 (支持获取器) echo $user->name; // 输出 think // 修改数据 (支持修改器) $user->name = 'ThinkPHP'; // 实际数据变成 thinkphp // 保存数据到内存 并且调用模型事件 $user->save(); // 获取关联博客数据 $blog = $user->blog()->limit(3)->select(); // 删除数据(同时删除关联博客数据) $user->together(['blog'])->delete();
가상 모델에는 실제 데이터 테이블이 없으므로 쿼리 작업을 수행할 수 없습니다. 다음 코드에서는 예외가 발생합니다.
User::find(1); // 会抛出下面的异常 // virtual model not support db query
가상 모델은 자동 타임스탬프 기능을 지원하지 않습니다. 시간 필드 형식화), 시간 필드가 필요한 경우 인스턴스화 중에 전달되어야 합니다.
getter, modifier 및 모델 이벤트를 정의하면 시간이 있을 때 테스트할 수 있습니다.
관련 추천: 최신 10개 thinkphp 비디오 튜토리얼
위 내용은 ThinkORM에 새로 추가된 가상 모델 기능 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)