Laravel의 데이터베이스 쿼리 및 모델 관계: 데이터 작업을 우아하게 처리
소개:
데이터베이스 작업은 웹 개발에서 피할 수 없는 부분이며, 간단하고 우아하며 유연한 개발 프레임워크인 Laravel은 풍부한 데이터베이스 쿼리 및 모델 관계 처리 도구. Laravel을 사용하면 데이터베이스 작업을 보다 편리하게 수행할 수 있으며, 모델 관계를 통해 데이터 간의 연결을 구축할 수 있습니다. 이 기사에서는 독자가 개발에 Laravel을 더 잘 사용할 수 있도록 데이터베이스 쿼리와 모델 관계라는 두 가지 측면에서 Laravel의 데이터 작업을 우아하게 처리하는 방법을 소개합니다.
1. 데이터베이스 쿼리
// 모든 사용자 쿼리
$users = DB::table('users')->get();
// 지정된 필드를 쿼리하고 ID를 기준으로 내림차순으로 정렬
$ users = DB ::table('users')->select('name', 'email')->orderBy('id', 'desc')->get();
// 쿼리 연령 18명 이상의 사용자
$users = DB::table('users')->where('age', '>=', 18)->get();
// 쿼리 페이지별 사용자 데이터
$ users = DB::table('users')->paginate(10);
namespace AppModels;
use IlluminateDatabaseEloquentModel;
class User 확장 Model
{
protected $table = 'users';
}
그런 다음 데이터는 다음과 같습니다. 모델을 통해 처리되는 쿼리 및 작업:
// 모든 사용자 쿼리
$users = User::all();
// 지정된 필드를 쿼리하고 ID별로 내림차순으로 정렬
$users = User::select( 'name', 'email' )->orderBy('id', 'desc')->get();
// 18세 이상 사용자 쿼리
$users = User::where(' age', '>= ', 18)->get();
// 페이지 매김으로 사용자 데이터 쿼리
$users = User::paginate(10);
2. 실제 개발에서는, 데이터 연관 관계 사이에는 종종 특정 차이가 있으며, Laravel은 일대일, 일대다, 다대다 등과 같은 모델 간의 관계를 처리하는 다양한 방법을 제공합니다. 다음은 일대다를 예로 들어 소개합니다.
hasMany
메소드를 사용하여 일대다 연관을 정의합니다: hasMany
方法定义一对多关联关系:namespace AppModels;
use IlluminateDatabaseEloquentModel;
class User extends Model
{
protected $table = 'users'; public function posts() { return $this->hasMany(Post::class); }
}
$user->posts
namespace AppModels;
$user->posts
를 통해 사용자의 모든 게시물을 가져올 수 있습니다.
연관 데이터 필터링 및 정렬
연관 메서드를 사용하여 데이터 필터링 및 정렬 작업을 수행할 수도 있습니다. 예를 들어, 사용자의 상위 5개 게시물을 가져와 게시 시간을 기준으로 내림차순으로 정렬합니다.
$user = User::find(1);
$posts = $user->posts()->latest( )-> ;limit(5)->get();
위 내용은 Laravel의 데이터베이스 쿼리 및 모델 관계: 데이터 조작을 우아하게 처리하기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!