현재 위치: > 최신 기사 목록> Laravel Model Soft Deletion, Left Join 및 Table Alias 사용의 예

Laravel Model Soft Deletion, Left Join 및 Table Alias 사용의 예

gitbox 2025-07-29

Laravel Model Soft Deletion, Left Join 및 Table Alias 사용의 예

Laravel은 데이터 운영을 단순화하기 위해 클래스를 통해 데이터베이스 테이블을 나타낼 수있는 강력한 Eloquent ORM 도구가 내장 된 인기있는 PHP 프레임 워크입니다. 개발 과정에서 소프트 삭제, 왼쪽 연결 및 기타 쿼리 방법을 사용해야합니다. 이 기사는 Laravel 모델에서 이러한 기능을 구현하는 방법을 소개합니다.

소프트 삭제

Soft Deletion은 특정 필드 (예 : Deleted_at)를 설정하여 실제로 삭제되는 데이터를 실제로 삭제하는 대신 표시하여 데이터를 삭제하는 논리적 인 방법입니다. 이 방법으로 삭제 된 데이터를 안전하게 복구 할 수 있습니다. Laravel은 간단하고 사용하기 쉬운 소프트 삭제 메커니즘을 제공하며 샘플 코드는 다음과 같습니다.

 use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;

class Post extends Model
{
    use SoftDeletes;
}

SoftDeletes를 추가 한 후 소프트 삭제 기능을 사용할 수 있습니다. 예를 들어,`withtrashed` 메소드를 사용하여 소프트 삭제 된 데이터를 쿼리하십시오.

 <span class="fun">$ post = post :: withTrashed ()-> get ();</span>

또는 소프트 삭제 된 데이터 복구 :

 $post = Post::withTrashed()->find($id);
$post->restore();

왼쪽 연결

Left Join을 사용하면 쿼리 중 왼쪽 및 오른쪽 테이블 모두에서 데이터를 얻을 수 있습니다. 오른쪽 테이블의 데이터가 일치하지 않더라도 왼쪽 테이블의 데이터가 여전히 반환되고 오른쪽 테이블의 관련 필드는 Null이됩니다. Laravel에서 왼쪽 조인의 구문은 다음과 같습니다.

 $users = DB::table('users')
             ->leftJoin('posts', 'users.id', '=', 'posts.user_id')
             ->select('users.*', 'posts.title')
             ->get();

이 쿼리는 사용자 정보와 해당 기사 제목이 포함 된 배열을 반환합니다.

테이블 별칭

복잡한 쿼리에서 테이블 별명을 사용하면 코드의 복잡성을 효과적으로 줄이고 가독성을 향상시킬 수 있습니다. Laravel에서는 다음과 같이 SQL 유사 메소드를 사용하여 테이블 별명을 설정할 수 있습니다.

 $results = DB::table('users')
            ->join('contacts', function ($join) {
                $join->on('users.id', '=', 'contacts.user_id')
                     ->where('contacts.user_id', '>', 5);
            })
            ->select('users.*', 'contacts.phone')
            ->get();

이런 식으로 쿼리의 여러 테이블 사이의 관계를 명확하게 나타낼 수 있습니다.

요약

이 기사는 Laravel의 소프트 삭제, 왼쪽 조인 및 테이블 별칭을 사용하는 방법에 대해 자세히 설명합니다. 소프트 삭제를 통해 데이터는 실수로 삭제되는 것을 방지 할 수 있습니다. 왼쪽 결합은 쿼리를 위해 여러 테이블과 결합 할 수 있습니다. 테이블 별칭은 복잡한 쿼리를 쉽게 쓰고 이해하기 쉽게 만듭니다. 이러한 기술은 코드 품질을 향상시킬뿐만 아니라 개발 효율성을 향상시킬 수 있습니다.