아하
검색 이미지
생활꿀팁 이미지
생활꿀팁생활
생활꿀팁 이미지
생활꿀팁생활
상냥한여새212
상냥한여새21220.07.06

라라벨 쿼리(DB) 사용을 원활하게 하는 방법 문의

안녕하세요.

다름이 아닌 연결된 DB를 효율적으로 사용하는 방법에 대해서 문의드립니다.

현재는 Eloquent ORM 방식으로 모델에 등록해놓고 가져와서 사용하고 있습니다.

namespace App\Http\Test; use Illuminate\Database\Eloquent\Model; class TestModel extends Model { # 모델과 연관된 테이블입니다. protected $table = 'SESSIONS'; # 테이블과 연결된 기본 키입니다. protected $primaryKey = 'SESSIONS_ID'; # ID가 자동으로 증가하는지 여부를 나타냅니다. public $incrementing = false; # 자동 증가 ID의 "유형"입니다. protected $keyType = 'string'; # 모델의 타임스탬프 지정 여부를 나타냅니다. public $timestamps = false; # 모델 날짜 열의 저장 형식입니다. protected $dateFormat = 'U'; # 속성에 대한 모델의 기본값입니다. // protected $attributes = [ // 'delayed' => false, // ]; }

대략 이런식으로 모델을 만든 후에

use App\Http\Controllers\Test; TestModel::where('SESSIONS_ID', "test")->get();

이런식으로 사용을 해볼까 하고 있습니다만

더 좋은 방법이 있는지 궁금합니다.

55글자 더 채워주세요.
답변의 개수
1개의 답변이 있어요!
  • 사실 더 좋은 방법이라기 보다는 그때그때 맞는 방법들이 다양하게 있습니다.

    get()은 보통 여러개의 레코드를 가져올 때 사용하곤 합니다.

    그래서 foreach를 돌려서 접근합니다.

    만약 $testModel = TestModel::where('SESSIONS_ID', "test")->get(); 라고 했을 때,

    바로 컬럼에 접근하려면 $testModel[0]->column 이 될 것입니다.

    $testModel = TestModel::where('SESSIONS_ID', "test")->get(); $testModel[0]->column;

    지금은 SESSIONS_ID값이 PK로 보이는데 그러면 find를 이용해도 됩니다.

    $testModel = TestModel::find('test')

    이렇게 하면 컬럼에 바로 접근이 가능합니다.

    $testModel->column

    $testModel = TestModel::find('test'); $testModel->column;

    만일 여러개의 레코드가 가져올 수 있는 상황에서 첫번째 레코드에 바로 접근하려면 first()도 사용이 가능합니다.

    $testModel = TestModel::where('SESSIONS_ID', "test")->first(); 라고 하게 된다면,

    testModel->column 으로 바로 접근합니다.

    $testModel = TestModel::where('SESSIONS_ID', "test")->first(); testModel->column;