gpt4 book ai didi

mysql - 如何使用 'cascade' 删除用户并自动删除他的所有关系?

转载 作者:行者123 更新时间:2023-11-29 05:02:14 26 4
gpt4 key购买 nike

我正在尝试使用“级联”删除用户并自动删除他的所有关系。不知道该怎么做。我正在使用 MySQL。到目前为止,我已经做到了:

用户模型

class User extends Authenticatable
{
use Notifiable;

//...

public function profile()

{
return $this->hasOne('App\Profile');
}
}

个人资料模型

class Profile extends Model
{
public function user()
{
return $this->belongsTo('App\User');
}
}

配置文件迁移

    public function up()
{
Schema::create('profiles', function (Blueprint $table) {
$table->bigIncrements('id');
$table->unsignedBigInteger('user_id');
$table->integer('phone');
$table->timestamps();

$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
});
}

我正在尝试使用修补匠:

$user = App\User::firsts();
$user->delete(); // it deletes only the user

$user->profile->delete(); // it deletes only the profile

最佳答案

您可以使用模型事件:

class User extends Eloquent
{
public static function boot ()
{

parent::boot();

self::deleting(function ($user) {
// This will be executed right before the user is deleted
$user->profile->delete();
});
}
}

这样,每当您在 User 对象上调用 delete() 方法时,Laravel 都会触发 $user->profile->delete() ; 就在之前。

关于mysql - 如何使用 'cascade' 删除用户并自动删除他的所有关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56100943/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com