$ composer require lybc/laravel-better-softdelete -vvv
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();
});
}
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);
}
}
MIT