【问题标题】:How do I delete a certain field in a different table when the user deletes his account?当用户删除他的帐户时,如何删除不同表中的某个字段?
【发布时间】:2021-04-18 08:24:35
【问题描述】:

用户删除账户时遇到问题,但他创建的列表仍然存在,当用户删除他的账户时如何删除列表? 我使用 jetsream laravel 进行身份验证。

以下是我要根据要删除的邮件删除的列表:

以下是您要删除的用户表:

我已经尝试阅读jetsream docs,但仍然找不到解决方案,请朋友们帮助。

【问题讨论】:

  • 对于支持cascading的数据库引擎,你可以在迁移中使用onDelete('cascade'),否则你可以钩入deleted or deleting lifecycle你的雄辩模型手动删除关系。
  • 你要删除其他记录吗,需要停止删除

标签: database laravel authentication reference jetstream


【解决方案1】:

如果您将用户的列表保存在另一个表中,那么您只需将用户 ID 作为列表表中的外键并在该列表表中使用 onDelete('cascade')。

例如:

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

当用户删除他的帐户时,与他的帐户关联的数据也将在列表中删除。

【讨论】:

  • 我必须在同一迁移中执行此操作吗?还是创建一个新的表迁移?
  • 您必须在同一迁移中执行此操作。只需在要保存用户其他信息的表中添加一个新的 user_id 列作为外键。
  • 会自动填写用户id吗?
  • 没有。您必须在该表中传递用户 ID 值。
猜你喜欢
  • 2020-04-23
  • 2019-12-01
  • 1970-01-01
  • 2021-11-06
  • 1970-01-01
  • 2019-10-19
  • 2018-01-28
  • 1970-01-01
  • 2022-11-09
相关资源
最近更新 更多