joggapp / laravel-cascade-soft-deletes
Laravel PHP 框架的级联软删除
v2.0.0
2024-03-13 08:42 UTC
Requires
- illuminate/support: ^11.0
Requires (Dev)
- orchestra/testbench: ^9.0
- phpunit/phpunit: ^10.0
This package is auto-updated.
Last update: 2024-09-13 09:51:37 UTC
README
实现
- 将
JoggApp\LaravelCascadeSoftDeletes\Traits\CascadeSoftDeletes
特性添加到父模型中。 - 将
protected $cascadeSoftDeletes
设置为一个数组,指定软删除要级联到哪些子关系。
代码示例
<?php namespace App\Models; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\SoftDeletes; use JoggApp\LaravelCascadeSoftDeletes\Traits\CascadeSoftDeletes; class User extends Model { use SoftDeletes, CascadeSoftDeletes; protected $cascadeSoftDeletes = [ 'posts', ]; public function posts() { return $this->hasMany(Post::class); } }
现在您可以删除一个 App\Models\User
记录,任何相关的 App\Models\Post
记录也将被删除。如果 App\Models\Post
记录也实现了 CascadeSoftDeletes
特性,它的子记录也将被删除,依此类推。
$user = App\Models\User::find($userId); $user->delete(); // Soft delete the user, which will also trigger the delete() method on any posts and their children.