laravel에서 orm의 전체 이름은 "객체-관계형 매핑"을 의미하는 "객체-관계형 매핑"입니다. 그 기능은 비즈니스를 운영할 때 이러한 방식으로 관계형 데이터베이스와 비즈니스 엔터티 개체를 매핑하는 것입니다. 객체의 속성과 메소드만 조작하면 SQL 문을 처리할 수 있으므로 복잡할 필요가 없습니다.
이 튜토리얼의 운영 환경: Windows 7 시스템, Laravel 6 버전, Dell G3 컴퓨터.
ORM
ORM이란 무엇입니까? 정식 이름은 Object-Relational Mapping(Object-Relational Mapping)입니다. 이러한 방식으로 특정 작업을 수행할 때 관계형 데이터베이스와 비즈니스 엔터티 개체를 매핑하는 것입니다. 비즈니스 객체, 더 이상 복잡한 SQL 문을 처리할 필요가 없고 객체의 속성과 메소드만 조작하면 됩니다.
ORM 구현 방법
가장 일반적인 두 가지 구현 방법은 ActiveRecord와 DataMapper입니다(전자는 laravel에서 사용됨)
ActiveRecord(매우 인기 있음)는 모델과 데이터 사이에 일대일 대응이 있습니다. 테이블,
DataMapper에서는 모델과 데이터 테이블이 완전히 분리되어 있습니다.
Laravel의 Eloquent ORM은 ActiveRecord 구현을 사용합니다. 각 Eloquent 모델 클래스는 데이터베이스의 테이블에 해당하며 모델 클래스의 해당 메서드를 호출하여 데이터베이스를 추가, 삭제, 수정 및 쿼리할 수 있습니다.
두 가지 마법 함수인 __call()과 __callStatic()을 이해하세요
class Test{ //动态调用的时候 没有找到此函数 则执行__call() 方法 public function __call($method, $parameters){ echo 22222222222; return (new Rest)->$method(...$parameters); } //静态调用的时候 没有找到此函数 则执行__callStatic()方法 public static function __callStatic($method, $parameters){ echo 1111111111; return (new static)->$method(...$parameters); } } class Rest{ public function foo($name , $age){ echo 333; dump($name,$age); } } //先调用了__callStatic(), 在调用__call(), 然后调用 foo(); Test::foo('张三',17); //只调用了 __call(), 然后调用 foo(); (new Test())->foo('李四',16);die;
laravel Eloqument ORM의 처음 두 가지 마법 함수의 어려움을 이해한 후 Model
/** * Handle dynamic method calls into the model. * * @param string $method * @param array $parameters * @return mixed */public function __call($method, $parameters) { if (in_array($method, ['increment', 'decrement'])) { return $this->$method(...$parameters); } return $this->newQuery()->$method(...$parameters); } /** * Handle dynamic static method calls into the method. * * @param string $method * @param array $parameters * @return mixed */public static function __callStatic($method, $parameters) { return (new static)->$method(...$parameters); }의 소스 코드를 살펴보겠습니다
$list = Politician::where('party_id', 1)->count();새로운 정적 반환 호출자의 인스턴스, new self()는 자체 인스턴스를 반환합니다. 모델에 메서드가 없는 곳에서 eloqument를 사용하여
$list = DB::table('categoty')->get();질의하는 경우 callStatic() 함수가 먼저 실행되어 AppModelsPolitician 인스턴스를 얻은 다음 ( )를 호출합니다. , $this->newQuery()에서 반환된 인스턴스에서 where()count()와 같은 메서드를 찾습니다. newQuery() 메서드에서 반환된 인스턴스를 자세히 살펴보세요. 이 두 가지 마법 함수를 이해하고 나면 laravel에서 ORM을 구현하는 어려움을 극복할 수 있습니다.
laravel
rrreee
Eloquent ORM의 쿼리 생성자는 실제로 쿼리 구성을 캡슐화하여 작동을 더 쉽게 만듭니다. 쿼리 생성자의 소스 코드에 관심이 있다면 살펴보세요[관련 권장 사항: laravel 비디오 튜토리얼
]🎜위 내용은 라라벨 옴이 뭔가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

本篇文章给大家带来了关于laravel的相关知识,其中主要介绍了关于单点登录的相关问题,单点登录是指在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于laravel的相关知识,其中主要介绍了关于Laravel的生命周期相关问题,Laravel 的生命周期从public\index.php开始,从public\index.php结束,希望对大家有帮助。

在laravel中,guard是一个用于用户认证的插件;guard的作用就是处理认证判断每一个请求,从数据库中读取数据和用户输入的对比,调用是否登录过或者允许通过的,并且Guard能非常灵活的构建一套自己的认证体系。

laravel中asset()方法的用法:1、用于引入静态文件,语法为“src="{{asset(‘需要引入的文件路径’)}}"”;2、用于给当前请求的scheme前端资源生成一个url,语法为“$url = asset('前端资源')”。

本篇文章给大家带来了关于laravel的相关知识,其中主要介绍了关于使用中间件记录用户请求日志的相关问题,包括了创建中间件、注册中间件、记录用户访问等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于laravel的相关知识,其中主要介绍了关于中间件的相关问题,包括了什么是中间件、自定义中间件等等,中间件为过滤进入应用的 HTTP 请求提供了一套便利的机制,下面一起来看一下,希望对大家有帮助。

laravel路由文件在“routes”目录里。Laravel中所有的路由文件定义在routes目录下,它里面的内容会自动被框架加载;该目录下默认有四个路由文件用于给不同的入口使用:web.php、api.php、console.php等。

在laravel中,scope用于处理模型中的数据,在模型中可以定义scope开头方法,这类方法可以通过模型直接调用,被称为查询作用域,语法为“public function scope首字母大写单词($query){...}”。


핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

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

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

Dreamweaver Mac版
시각적 웹 개발 도구
