lybc / laravel-better-softdelete
A better way to soft delete in laravel
dev-master
2018-12-11 03:10 UTC
Requires (Dev)
- orchestra/testbench: ~3.5.0|~3.6.0|~3.7.0
- phpunit/phpunit: ^6.1|^7.0
This package is not auto-updated.
Last update: 2024-09-26 04:27:44 UTC
README
Installing
$ composer require lybc/laravel-better-softdelete -vvv
Usage
在migrate中添加数据库结构
public function up() { Schema::create('some_tables', function (Blueprint $table) { $table->increments('id'); $table->timestamps(); ... $table->betterSoftDeletes(); }); } public funtion down() { Schema::table('some_tables', function (Blueprint $table) { ... $table->dropBetterSoftDeletes(); }); }
在 model 中 use Trait
use Lybc\BetterSoftDelete\BetterSoftDeletes; class SomeModel extends Model { use BetterSoftDeletes; }
完成以上操作即可使用 Laravel 提供的 API 进行软删除
如果没有使用本包提供的方式定义软删除字段,可以在模型中定义常量重写软删除字段
class SomeModel extends Model { const DELETED_AT_COLUMN = 'deleted'; }
级联删除
本包提供级联删除支持,当模型之间存在关联关系时,父模型删除连带删除子模型
use Lybc\BetterSoftDelete\BetterSoftDeletes; class Post extends Model { use BetterSoftDeletes; // 定义需要级联删除的关联关系 protected $cascadeDeletes = [ 'comments' ]; public function comments() { return $this->hasMany(Comment::class); } }
License
MIT