개발지식/Laravel
Laravel 데이터 취급 비교
kimty1121
2024. 2. 8. 01:22
콜렉션 (Collection) | 쿼리빌더 (QueryBuilder) | 엘로퀀트 (Eloquent Model) | |
데이터 형 | Illuminate\Support\Collection | Illuminate\Support\Collection | Illuminate\Database\Eloquent\Collection (Collection을 계승) |
사용방법 | collect(); new Collection; |
use Illuminate\Supports\Facades\DB; DB::table(테이블명)->get(); |
모델명::all(); 모델명::select()->get(); |
관련 메뉴얼 | 콜렉션 | 콜렉션 쿼리빌더 |
콜렉션, 쿼리빌더, 엘로퀀트, 엘로퀀트의 콜렉션 |
특징 | 배열의 확장 | SQL이랑 비슷함 | OR맵퍼 |
장점 | 다수의 전용 메소드 | SQL을 알고 있으면 이해하기 쉬움 | 간결하게 작성 릴레이션이 강력 |
단점 | 반환값에 여러 패턴이 존재 (stdClass, Collection, 모델Collection) |
코드가 길어질수 있음 | 기억해야 할 것이 많음 조금 느림 |
실제 코드 작성 예
use App\Models\Owner; // Eloquent
use Illuminate\Support\Facades\DB; // QueryBuilder
...
// Eloquent
$e_all = Owner::all();
// QueryBuilder
$q_get = DB::table('owners')->select('name')->get();
$q_first = DB::table('owners')->select('name')->first();
// collect
$c_test = collect([
'name' => 'test'
]);
dd($e_all, $q_get, $q_first, $c_test);
결과