Laravel 5.1 프레임 워 크 모델 소프트 삭제 작업 사례 분석
4094 단어 Laravel5.1모형.소프트 삭제
소프트 삭 제 는 비교적 실 용적 인 삭제 수단 이다.예 를 들 어 당신 은 장부 에 기록 이 있다 고 생각 하지 않 는 다.삭 제 된 지 며칠 이 지나 면 삭제 하지 말 아야 한 다 는 것 을 알 게 되 었 다.이때 소프트 삭제 의 목적 은 이미 삭 제 된 데 이 터 를 찾 아 조작 할 수 있 고 복원 할 수도 있 고 진정한 삭제 일 수도 있다.
1 일반 삭제
소프트 삭제 하기 전에 일반적인 삭제 방법 을 살 펴 보 자.
1.1 메 인 키 로 직접 삭제
public function getDelete()
{
Article::destroy(1);
Article::destroy([1,2,3]);
}
1.2 model 가 져 오기 후 삭제
public function getDelete()
{
$article = Article::find(3);
$article->delete();
}
1.3 일괄 삭제
public function getDelete()
{
//
$deleteRows = Article::where('id','>',3)->delete();
dd($deleteRows); // 2
}
2 소프트 삭제2.1 준비 작업
만약 당신 이 소프트 삭 제 를 실현 하려 면 세 가지 일 을 미리 해 야 합 니 다.
deleted 추가at 모델 의$date 속성 에..모델 에 Illuminate\Database\Eloquent\SoftDeletes 라 는 trait 를 사용 합 니 다데이터 시트 에 deleted 가 있 음 을 보증 합 니 다.at 열 이 없 으 면 이 열 을 추가 합 니 다우선 우 리 는 첫 번 째 단계 와 두 번 째 단 계 를 한다.
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class Article extends Model
{
// SoftDeletes trait
use SoftDeletes;
//
protected $fillable = ['title', 'body'];
// dates
protected $dates = ['deleted_at'];
}
그리고 우 리 는 이전 파일 을 만들어 deleted 를 추가 합 니 다.at 열 에서 데이터 시트 까지:
class InsertDeleteAtIntroArticles extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('articles', function (Blueprint $table) {
$table->softDeletes();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('articles', function (Blueprint $table) {
$table->dropSoftDeletes();
});
}
}
2.2 소프트 삭제 실현이제 우 리 는 데 이 터 를 삭제 해 볼 수 있다.
public function getDelete()
{
$article = Article::first();
$article->delete();
}
↑우리 가 이 데 이 터 를 삭제 한 후에 데이터 시트 에서 deleted 라 고 표시 했다.at 비 어 있 지 않 습 니 다.시간 값 입 니 다.deleteat 가 비어 있 지 않 을 때 이 데이터 가 부 드 럽 게 삭제 되 었 음 을 증명 합 니 다.2.3 데이터 가 부 드 럽 게 삭제 되 었 는 지 판단
if ($article->trashed()){
echo ' ';
}
2.4 소프트 삭 제 된 데이터 조회한 가지 주의해 야 할 것 은 데이터 가 부 드 럽 게 삭 제 된 후에 자동 으로 조회 데이터 에서 제 외 됩 니 다.즉,일반적인 조회 문 에 의 해 조회 되 지 않 습 니 다.소프트 삭제 데 이 터 를 조회 하려 면 withTrashed 방법 을 사용 할 수 있 습 니 다.
public function getIndex()
{
$article = Article::withTrashed()->first();
if ($article->trashed()){
echo ' '; //
}
}
우 리 는 또한 only Trashed 를 사용 할 수 있 습 니 다.그것 과 withTrashed 의 차 이 는 부 드 럽 게 삭 제 된 데이터 만 얻 는 것 입 니 다.
public function getIndex()
{
$articles = Article::onlyTrashed()->where('id','<','10')->get()->toArray();
dd($articles);
}
2.5 소프트 삭 제 된 데이터 복구
public function getIndex()
{
$article = Article::withTrashed()->find(6);
$article->restore();
}
2.6 데이터 영구 삭제
public function getIndex()
{
$article = Article::withTrashed()->find(6);
$article->forceDelete();
}
Laravel 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.본 고 는 Laravel 프레임 워 크 를 바탕 으로 하 는 PHP 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Laravel 5.1 프레임 워 크 모델 조회 역할 영역 정의 와 용법 사례 분석본 논문 의 사례 는 Laravel 5.1 프레임 워 크 모델 조회 역할 도 메 인 정의 와 용법 을 서술 했다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다. 검색 역할 영...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.