>  기사  >  PHP 프레임워크  >  laravel 쿼리 구문

laravel 쿼리 구문

WBOY
WBOY원래의
2023-05-29 10:01:37715검색

Laravel은 오늘날 가장 인기 있는 PHP 프레임워크 중 하나이며 쿼리 구문은 우아하고 간단하며 사용하기 쉽습니다. 이 기사에서는 Laravel의 쿼리 구문을 자세히 살펴보고 몇 가지 일반적인 쿼리 방법을 소개하며 복잡한 쿼리를 수행하는 방법을 설명합니다.

Laravel 쿼리의 기본 구문
Laravel에서 쿼리 문은 Eloquent ORM을 사용하여 작성됩니다. ORM은 객체 관계형 매핑(Object Relational Mapping)으로, 이를 통해 데이터베이스를 객체 지향 방식으로 운영할 수 있어 데이터베이스와의 상호 작용 프로세스가 크게 단순화됩니다.

다음은 Laravel 쿼리 구문을 사용한 예입니다.

//단일 사용자 가져오기
$user = User::find(1);

//사용자 목록 가져오기
$users = User::all( );

//조건부 필터링, 지정된 조건에서 사용자 목록 가져오기
$users = User::where('age', '>', 18)->get();

//데이터 업데이트
$user-> ;name = 'new name';
$user->save();

//Delete data
$user->delete();

위와 같이 Laravel 쿼리 구문을 사용하면 기본적인 CURD 작업을 쉽게 구현할 수 있습니다. 아래에서는 일반적으로 사용되는 몇 가지 쿼리 방법을 소개합니다.

일반적으로 사용되는 쿼리 방법

  1. where()
    where() 방법은 매우 일반적인 조건부 필터링 방법입니다. 주어진 조건에 따라 요구 사항을 충족하는 레코드를 필터링합니다. 예:

$users = User::where('age', '>', 18)->where('gender', 'male')->get();

where() method 연산자를 지정하는 세 번째 매개변수를 받을 수도 있습니다. 예:

$users = User::where('age', '>=', 18)->get();

  1. orderBy( )
    orderBy() 메서드를 사용하여 정렬합니다. 예를 들어, 사용자의 연령을 기준으로 정렬할 수 있습니다.

$users = User::orderBy('age')->get();

기본적으로 orderBy() 메서드는 오름차순으로 정렬됩니다. 내림차순으로 정렬하려면 DESC 매개변수를 전달할 수 있습니다:

$users = User::orderBy('age', 'desc')->get();

또한 orderBy() 메소드는 여러 정렬 조건을 지정하기 위한 여러 매개변수를 받을 수 있습니다:

$users = User::orderBy('age', 'desc')->orderBy('name')->get();

  1. select( )
    select() 메서드는 지정된 열을 쿼리하는 데 사용됩니다. 예:

$users = User::select('name', 'email')->get();

또한 *를 사용하여 모든 열을 쿼리할 수도 있습니다.

$users = User::select (' *')->get();

  1. take() 및 Skip()
    take() 메소드는 반환되는 레코드 수를 제한하는 데 사용되며, Skip()은 지정된 레코드 수를 건너뛰는 데 사용됩니다. . 예를 들어, 상위 10명의 사용자를 쿼리할 수 있습니다:

$users = User::take(10)->get();

페이징을 구현하기 위해 Skip() 메서드를 사용할 수도 있습니다:

$users = 사용자: :skip(10)->take(10)->get();

  1. whereIn() 및 whereNotIn()
    whereIn(), whereNotIn() 메소드를 사용하여 IN 및 NOT IN을 사용할 수 있습니다. 쿼리에서. 예를 들어, 18세 미만의 사용자를 얻으려면 다음과 같이 작성할 수 있습니다.

$users = User::whereIn('age', [16, 17, 18])->get();

  1. whereNull( ) 및 whereNotNull()
    whereNull() 메소드는 지정된 열이 비어 있는 레코드를 필터링할 수 있고, whereNotNull()은 비어 있지 않은 레코드를 필터링할 수 있습니다. 예:

$users = User::whereNull('email')->get();

  1. groupBy() 및 have()
    groupBy() 메소드는 결과 세트를 그룹화하는 데 사용됩니다. ( ) 메소드는 그룹화된 결과를 필터링하는 데 사용됩니다. 예를 들어 성별별로 그룹화하고 20세 이상의 남성 사용자를 필터링할 수 있습니다.

$users = User::groupBy('gender')->having('age', '>' , 20 )->get();

복잡한 쿼리

위에서는 Laravel 쿼리 구문의 몇 가지 기본 사용법을 소개합니다. 그러나 실제 개발에서는 일반적으로 쿼리해야 하는 데이터가 매우 복잡할 수 있으며 이를 달성하려면 더 많은 쿼리 방법을 사용해야 합니다. Laravel에서는 쿼리 빌더를 사용하여 보다 복잡한 쿼리 문을 작성할 수 있습니다.

예를 들어 누적 소비량이 500위안을 초과하는 사용자를 쿼리하려면 다음과 같이 작성할 수 있습니다.

$users = DB::table('users')

        ->join('orders', 'users.id', '=', 'orders.user_id')
        ->select('users.id', 'users.name', 'users.email', DB::raw('SUM(orders.total) as total'))
        ->groupBy('users.id')
        ->having('total', '>', 500)
        ->get();

위 코드에서는 Join( ) 메소드를 사용하여 사용자 테이블과 주문 테이블을 연결하고, groupBy() 메소드를 사용하여 사용자를 그룹화하고, have() 메소드를 사용하여 누적 소비량이 500위안을 초과하는 사용자를 필터링합니다.

Summary

Laravel에서는 Eloquent ORM을 사용하여 기본 CURD 작업을 쉽게 구현할 수 있습니다. 동시에 쿼리 빌더를 사용하면 더 복잡한 쿼리를 구현할 수 있습니다. 이 글이 Laravel의 쿼리 구문을 이해하는 데 도움이 되기를 바랍니다.

위 내용은 laravel 쿼리 구문의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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