minstudio

Eloquent ORM으로 DB 연동하기

SQL 쿼리를 직접 작성하면 코드도 길어지고 실수하기도 쉽습니다. ORM(Object-Relational Mapping)은 데이터베이스의 '표(Table)'를 PHP의 '객체(Object)'로 자동 변환해주는 아주 편리한 번역기입니다. 여기서는 라라벨(Laravel)에서 사용하는 강력한 Eloquent ORM을 Slim에 연동합니다.

👨‍💻
PHP 객체 (코드)
User::find(1);
🔄
Eloquent ORM (자동 번역)
🗄️
SQL 테이블
SELECT * FROM users
WHERE id = 1
bash
// composer require illuminate/database

use Illuminate\Database\Capsule\Manager as Capsule;

// 1. Eloquent ORM 초기화 설정
$capsule = new Capsule;
$capsule->addConnection([
    'driver'    => 'mysql',
    'host'      => 'localhost',
    'database'  => 'mydb',
    'username'  => 'root',
    'password'  => 'secret',
    'charset'   => 'utf8',
    'collation' => 'utf8_unicode_ci',
    'prefix'    => '',
]);
$capsule->setAsGlobal(); // 전역으로 사용 가능하게 설정
$capsule->bootEloquent();

// 2. 모델 클래스 생성
class User extends \Illuminate\Database\Eloquent\Model {
    protected $table = 'users'; // 테이블 이름
}

// 3. Slim 라우트에서 사용하기
$app->get('/users/{id}', function ($request, $response, $args) {
    // 쿼리 작성 없이 한 줄로 데이터를 가져옵니다!
    $user = User::find($args['id']);
    
    $response->getBody()->write($user->toJson());
    return $response->withHeader('Content-Type', 'application/json');
});
Eloquent ORM으로 DB 연동하기 | Minstudio