라라벨 4.2 이상부터 소프트 삭제와 관련하여 약간의 변화가 있습니다. 이전 버전의 경우 클래스 내에 멤버변수로 다음과 같이 선언하여 사용하였다면,
protected $softDelete = true;
4.2 이후 버전부터는 아래와 같이 선언하여 사용합니다.
use Illuminate\Database\Eloquent\SoftDeletingTrait;
class User extends \Eloquent {
use SoftDeletingTrait;
(추가) 5.0 이후 버전부터는 아래와 같이 선언하여 사용합니다.
use Illuminate\Database\Eloquent\SoftDeletes;
class User extends \Eloquent {
use SoftDeletes;
이후, 엘로퀀트 모델에서 delete() 메소드를 호출하여도 실제 삭제되지 않고 deleted_at 에 관련 정보가 추가됩니다. 참~ 마이그레이션으로 테이블 생성시, 아래의 항목을 추가합니다.
$table->softDeletes();
기타 사용 예제는 다음과 같습니다.
$users = User::withTrashed()->where('account_id', 1)->get(); // 소프트 삭제된 레코드도 검색
$user->posts()->withTrashed()->get(); // 소프트 삭제된 레코드도 검색
$users = User::onlyTrashed()->where('account_id', 1)->get(); // 소프트 삭제된 레코드만을 검색
$user->restore(); // 소프트 삭제된 레코드를 복원
User::withTrashed()->where('account_id', 1)->restore(); // 소프트 삭제된 레코드를 복원
$user->posts()->restore(); // 소프트 삭제된 레코드를 복원
$user->forceDelete(); // 진짜 삭제
$user->posts()->forceDelete(); // 진짜 삭제
if ($user->trashed()) // 모델의 인스턴스가 삭제된 항목인지 검사
{
//
}
'프로그래밍 > Web' 카테고리의 다른 글
PhpStorm 에서 Laravel 프로젝트 설정하기... (4) | 2015.10.15 |
---|---|
Laravel 4 oauth-4-laravel 설치하기 (Laravel 5 추가) (0) | 2015.06.29 |
Laravel 4 bootstrapper 설치하기 (0) | 2015.01.15 |
Laravel 4 서브 디렉토리 구조 구현 - 마이그레이션 (0) | 2015.01.13 |
Laravel 4 의 동적 속성(Dynamic Properties) (0) | 2015.01.08 |
댓글