[Laravel] 소프트 델리트 및 취득, 복원, 완전 삭제
8680 단어 데이터베이스softdeletePHP라라벨
물리적 삭제 및 논리 삭제
데이터베이스 삭제에는 물리적 삭제와 논리 삭제가 있습니다. 말은 아무래도 좋습니다만, 2개에는 큰 차이가 있습니다.
그것은 복원 가능한지 여부입니다.
이 복원 가능한 삭제, 소위 휴지통에 들어있는 상태로 하는 삭제 방법이 논리 삭제로 소프트 델리트가 됩니다.
우선 데이터베이스 만들기
데이터베이스를 만들어 갑시다.
php artisan make:migration create_contents_table --create=contents
여기서는 contents 테이블을 만들고 있습니다.
create_contents_table.php public function up()
{
Schema::create('contents', function (Blueprint $table) {
$table->increments('id');
$table->text('body');
$table->timestamps();
$table->softDeletes();
});
}
text 데이터 형식으로 body 열을 만드는 간단한 데이터베이스입니다.
마지막 $table->softDeletes();
가 포인트입니다.
이 테이블의 요소에 삭제 처리를 할 때는 소프트 델리트라고 정의하고 있습니다.
부수적인 모델 만들기
그런 다음 데이터베이스와 관련된 모델을 만듭니다.
php artisan make:model Content
Content.phpuse Illuminate\Database\Eloquent\SoftDeletes;
class Content extends Model
{
use SoftDeletes;
protected $dates = ['deleted_at'];
protected $fillable = [
'body'
];
}
모델에서는, $fillable
로 body를 만지도록(듯이) 설정하고 있습니다.use SoftDeletes
에서 소프트 델리트를 사용할 수 있도록하고 있으며 삭제 된 날을 알 수 있도록 $dates
에서 deleted_at 열을 만들고 있습니다.
여기까지 할 수 있으면 migrate
합시다.
php artisan migrate
내용이 비어 있으므로 데이터 넣기
현재는 내용이 비어 있으므로 적당하게 데이터를 3개 정도 넣어 봅시다.
web.php
use App\Content;
Route::get('/contents/insert', function() {
Content::create([
'body' => 'Laravel is PHP framework!!',
]);
});
Route::get('/contents/insert2', function() {
Content::create([
'body' => 'PHP is programming language!!',
]);
});
Route::get('/contents/insert3', function() {
Content::create([
'body' => 'programming is a lot of fun!!',
]);
});
이제 지정된 URL에 액세스하면 데이터가 들어갑니다.
갈거야. deleted_at
는 현재 NULL입니다.
소프트 델리트와 취득
본제의 소프트 델리트를 해 봅시다.
web.phpRoute::get('/contents/softdelete', function() {
Content::find(1)->delete();
});
id가 1인 요소를 삭제합니다.
갔다. 삭제한 날이 표시되고 데이터베이스에는 있지만 검색할 수 없습니다.
다음은 삭제한 요소를 가져옵니다.
web.phpRoute::get('/contents/softdelete/get', function() {
$content = Content::onlyTrashed()->whereNotNull('id')->get();
dd($content);
});
갈거야.
다른 방법도 소개
onlyTrashed()
는 삭제된 요소만 검색하는 메서드이지만 다른 메서드도 있습니다.
또 완전 삭제나, 복원의 메소드도 소개합니다.
//削除済みのデータも含める
Content::withTrashed()->whereNotNull('id')->get();
//完全削除
Content::onlyTrashed()->whereNotNull('id')->forceDelete();
//復元
Content::onlyTrashed()->whereNotNull('id')->restore();
요약
빨리 laravel을 잘 사용할 수있게되고 싶습니다. . .
Reference
이 문제에 관하여([Laravel] 소프트 델리트 및 취득, 복원, 완전 삭제), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kuropp/items/b7c6c068a90ec7bdcd73
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
데이터베이스를 만들어 갑시다.
php artisan make:migration create_contents_table --create=contents
여기서는 contents 테이블을 만들고 있습니다.
create_contents_table.php
public function up()
{
Schema::create('contents', function (Blueprint $table) {
$table->increments('id');
$table->text('body');
$table->timestamps();
$table->softDeletes();
});
}
text 데이터 형식으로 body 열을 만드는 간단한 데이터베이스입니다.
마지막
$table->softDeletes();
가 포인트입니다.이 테이블의 요소에 삭제 처리를 할 때는 소프트 델리트라고 정의하고 있습니다.
부수적인 모델 만들기
그런 다음 데이터베이스와 관련된 모델을 만듭니다.
php artisan make:model Content
Content.phpuse Illuminate\Database\Eloquent\SoftDeletes;
class Content extends Model
{
use SoftDeletes;
protected $dates = ['deleted_at'];
protected $fillable = [
'body'
];
}
모델에서는, $fillable
로 body를 만지도록(듯이) 설정하고 있습니다.use SoftDeletes
에서 소프트 델리트를 사용할 수 있도록하고 있으며 삭제 된 날을 알 수 있도록 $dates
에서 deleted_at 열을 만들고 있습니다.
여기까지 할 수 있으면 migrate
합시다.
php artisan migrate
내용이 비어 있으므로 데이터 넣기
현재는 내용이 비어 있으므로 적당하게 데이터를 3개 정도 넣어 봅시다.
web.php
use App\Content;
Route::get('/contents/insert', function() {
Content::create([
'body' => 'Laravel is PHP framework!!',
]);
});
Route::get('/contents/insert2', function() {
Content::create([
'body' => 'PHP is programming language!!',
]);
});
Route::get('/contents/insert3', function() {
Content::create([
'body' => 'programming is a lot of fun!!',
]);
});
이제 지정된 URL에 액세스하면 데이터가 들어갑니다.
갈거야. deleted_at
는 현재 NULL입니다.
소프트 델리트와 취득
본제의 소프트 델리트를 해 봅시다.
web.phpRoute::get('/contents/softdelete', function() {
Content::find(1)->delete();
});
id가 1인 요소를 삭제합니다.
갔다. 삭제한 날이 표시되고 데이터베이스에는 있지만 검색할 수 없습니다.
다음은 삭제한 요소를 가져옵니다.
web.phpRoute::get('/contents/softdelete/get', function() {
$content = Content::onlyTrashed()->whereNotNull('id')->get();
dd($content);
});
갈거야.
다른 방법도 소개
onlyTrashed()
는 삭제된 요소만 검색하는 메서드이지만 다른 메서드도 있습니다.
또 완전 삭제나, 복원의 메소드도 소개합니다.
//削除済みのデータも含める
Content::withTrashed()->whereNotNull('id')->get();
//完全削除
Content::onlyTrashed()->whereNotNull('id')->forceDelete();
//復元
Content::onlyTrashed()->whereNotNull('id')->restore();
요약
빨리 laravel을 잘 사용할 수있게되고 싶습니다. . .
Reference
이 문제에 관하여([Laravel] 소프트 델리트 및 취득, 복원, 완전 삭제), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kuropp/items/b7c6c068a90ec7bdcd73
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
php artisan make:model Content
use Illuminate\Database\Eloquent\SoftDeletes;
class Content extends Model
{
use SoftDeletes;
protected $dates = ['deleted_at'];
protected $fillable = [
'body'
];
}
php artisan migrate
현재는 내용이 비어 있으므로 적당하게 데이터를 3개 정도 넣어 봅시다.
web.php
use App\Content;
Route::get('/contents/insert', function() {
Content::create([
'body' => 'Laravel is PHP framework!!',
]);
});
Route::get('/contents/insert2', function() {
Content::create([
'body' => 'PHP is programming language!!',
]);
});
Route::get('/contents/insert3', function() {
Content::create([
'body' => 'programming is a lot of fun!!',
]);
});
이제 지정된 URL에 액세스하면 데이터가 들어갑니다.
갈거야.
deleted_at
는 현재 NULL입니다.소프트 델리트와 취득
본제의 소프트 델리트를 해 봅시다.
web.phpRoute::get('/contents/softdelete', function() {
Content::find(1)->delete();
});
id가 1인 요소를 삭제합니다.
갔다. 삭제한 날이 표시되고 데이터베이스에는 있지만 검색할 수 없습니다.
다음은 삭제한 요소를 가져옵니다.
web.phpRoute::get('/contents/softdelete/get', function() {
$content = Content::onlyTrashed()->whereNotNull('id')->get();
dd($content);
});
갈거야.
다른 방법도 소개
onlyTrashed()
는 삭제된 요소만 검색하는 메서드이지만 다른 메서드도 있습니다.
또 완전 삭제나, 복원의 메소드도 소개합니다.
//削除済みのデータも含める
Content::withTrashed()->whereNotNull('id')->get();
//完全削除
Content::onlyTrashed()->whereNotNull('id')->forceDelete();
//復元
Content::onlyTrashed()->whereNotNull('id')->restore();
요약
빨리 laravel을 잘 사용할 수있게되고 싶습니다. . .
Reference
이 문제에 관하여([Laravel] 소프트 델리트 및 취득, 복원, 완전 삭제), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kuropp/items/b7c6c068a90ec7bdcd73
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Route::get('/contents/softdelete', function() {
Content::find(1)->delete();
});
Route::get('/contents/softdelete/get', function() {
$content = Content::onlyTrashed()->whereNotNull('id')->get();
dd($content);
});
onlyTrashed()
는 삭제된 요소만 검색하는 메서드이지만 다른 메서드도 있습니다.또 완전 삭제나, 복원의 메소드도 소개합니다.
//削除済みのデータも含める
Content::withTrashed()->whereNotNull('id')->get();
//完全削除
Content::onlyTrashed()->whereNotNull('id')->forceDelete();
//復元
Content::onlyTrashed()->whereNotNull('id')->restore();
요약
빨리 laravel을 잘 사용할 수있게되고 싶습니다. . .
Reference
이 문제에 관하여([Laravel] 소프트 델리트 및 취득, 복원, 완전 삭제), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kuropp/items/b7c6c068a90ec7bdcd73
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여([Laravel] 소프트 델리트 및 취득, 복원, 완전 삭제), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kuropp/items/b7c6c068a90ec7bdcd73텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)