[laravel] Elequent

[laravel] Elequent updated_at: 2024-10-16 15:13

Elequent

Laravel에는 데이터베이스와 상호작용하는 것을 쉽게 만드는 객체 관계 매퍼(ORM - object-relational mapper)인 Eloquent가 포함되어 있습니다. Eloquent를 사용할 때 각 데이터베이스 테이블에는 해당 테이블과 상호작용하는 데 사용되는 해당 "모델"이 있습니다. 데이터베이스 테이블에서 레코드를 검색하는 것 외에도 Eloquent 모델을 사용하면 테이블에서 레코드를 삽입, 업데이트 및 삭제할 수도 있습니다.

기본적인 형태

<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Deposit extends Model
{
}
  • protected $table = 'users';

  • public $timestamps = false;

  • const UPDATED_AT = null;

  • const UPDATED_AT = null;

  • $maps = ['bad_number_column' => 'number', 'bad_date_column' => 'date']; // 컬럼 이름 변경

  • $hidden = ['bad_number_column', 'bad_date_column']; // select all 시 출력 금지

  • $appends = ['number', 'date'];

  • protected $fillable = ['email', 'password'];

alias 설정

방법 1

model에서 테이블 명을 설정할때 'as' 로서 alias 설정

protected $table = 'users as u';  
User::where('u.id', 1229)->select('u.email')->get();

방법 2 ( 추천)

query 작성시 'from'을 사용하여 alias 설정
단점으로는 현재 Model이 softDelete를 사용할 경우 "Unknown column 'table.deleted_at'" 에러 발생

$query = Model::from('table as alias')->get();

만약 모델이 SoftDeletes를 사용한다면 아래와 같이 query를 변경하여 사용한다.

$query = Model::from('table as alias')->withTrashed()->whereNull("alias.deleted_at")->get();

방법 3

select를 사용하는 방식

$users = DB::select('select * from students as std');

방법 4

table을 사용하는 방식

DB::table('students as std')
평점을 남겨주세요
평점 : 5.0
총 투표수 : 1

질문 및 답글