라라쇼츠

엘로퀀트 모델, 없는 속성 접근 원천 차단

엘로퀀트 모델에 존재하지 않거나, 데이터베이스에서 조회한 속성이 아닌 속성에 접근하면 그냥 null 을 반환하고 맙니다. 

$post = Post::select('id', 'title', 'content')->first();

echo $post->user_id; 

// null

 

엘로퀀트 스트릭트 모드를 활성화하면 없는 속성에 접근 시도시 MissingAttributeException 이 발생합니다. 이 기능을 활성화하려면 AppServiceProvider의 boot() 메서드에서 Model::shouldBeStrict() 메서드를 호출하거나, Model::shouldBeStrict() 메서드 내부에서 호출되는 Model::preventAccessingMissingAttributes() 메서드를 직접 호출해주면 됩니다.

// app/Providers/AppServiceProvider.php

public function boot()
{
    Model::shouldBeStrict();

    // 또는

    Model::preventAccessingMissingAttributes();
}

 

댓글

댓글 본문