분야 "Eloquent" tricks
updated_at 컬럼 사용하지 않기
by river
Laravel Eloquent는 timestamp 컬럼인 created_at, updated_at 에 대해서 자동으로 날짜를 설정하고, 갱신하는 작업을 수행하다. 이 중 created_at 컬럼은 사용하고, updated_at 컬럼은 사용하지 않을 경우에는…
Laravel 5에서 DB 쿼리 로그 남기기
by river
Laravel 5에서는 쿼리 로그가 기본적으로 비활성화 되어 있어서, 이전 버전처럼 바로 DB::getQueryLog()를 하면 빈 배열이 반환된다. 쿼리로그 활성화 DB::enableQueryLog(); 쿼리로그 얻기 $queries =…
Eager Loading 체이닝
by river
User, Phone, Post 세 개의 모델이 있고, 다음의 관계를 갖는다고 가정하자. class User extends Eloquent { public function phone() { return $this->hasOne('Phone'); } publif function posts() { return $this->hasMany('Post'); } }…
다중 DB 연결 사용하기
by river
다중 DB 설정하기 app/config/database.php <?php return array( 'default' => 'mysql', 'connections' => array( # Our primary database connection 'mysql' => array( 'driver' => 'mysql', 'host' => 'host1', 'database' => 'database1',…
Raw Queries DB::select, DB::statement
by river
DB::select DB::select는 Eloquent나 쿼리 빌더로 해결하기 어려운 복잡한 쿼리를 수행해서 데이타를 선택할 때 사용하면 좋다. 다음의 코드를 생각해 보자. $someVariable = Input::get("some_variable"); $results =…
Eloquent 쿼리, 파일에 로그 남기기
by river
Before you start with this create a file in your logs folder (eg : 'query.log') and grant laravel write access to it. Place the snippet in your '/app/start/local.php' file. (or routes.php or anywhere...) Access artisan from your console and type this $…
모델의 날짜 출력 포맷 정하기
by river
Eloquent의 Accessor를 사용해서 날짜의 출력 포맷을 정할 수 있다. class Post extends Eloquent { public function getUpdatedAtAttribute($value) { return Carbon::parse($value)->format('d/m/Y H:i:s'); } public function…
Eloquent의 Accessors와 Mutators
by river
DB에서 데이터를 읽을 때, 혹은 저장할 때 규칙을 정해서 값을 변환하고 싶을 때가 있다. 날짜를 읽을 때 YYYY-MM-DD의 문자열로 바꾼다든지, 비밀번호를 저장할 때 해시코드로 저장하든지 등을…
DB 테이블에 기본 timestamps 컬럼 외에 다른 날짜타입 컬럼 추가하기
by river
블로그 글을 담고 있는 posts 테이블이 있고, 다음과 같이 컬럼이 구성되어 있다. Schema::create('posts', function($table) { $table->increments('id'); $table->string('title'); $table->timestamps(); // 마지막 수정일…
timestamps 컬럼명 지정하기
by river
timestamps를 사용하는 경우 (default) created_at, updated_at, deleted_at 컬럼명이 기본인데, 다음의 방법으로 이를 변경할 수 있다. 방법 1 User extends Eloquent{ const CREATED_AT = 'registered_at'; const UPDATED_AT =…
생성 날짜별 정렬 쿼리 축약형 메소드
by river
Illumiate\Database\Query\Builder 객체에는 생성 날짜별 정렬에 대한 축약 메소드를 제공한다. <?php MyModel::where('user_id', $userId)->orderBy('created_at', 'desc')->first(); // 동일한 코드 MyModel::where('user_id',…
Laravel 프레임웍 없이 Eloquent 사용하기
by river
Laravel 프레임을 사용하지 않더라도 Eloquent ORM을 사용할 수가 있다. eloquent 설치 $ composer require illuminate/database database.php 파일 생성 <?php require 'vendor/autoload.php'; use Illuminate\Database\Capsule\Manager as…