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