php - 在使用具有不同外键的 laravel 时如何删除
问题描述
这是我的代码:
我创建了一个表image_upload
。在此表中有 2 个 colou,即post_id
, post_name
, deleted_at
, created_at
, updated_at
。Post id 属于 post 表。
当用户删除帖子时,我试图在 laravel 中使用软删除并更新deleted_at
image_upload 表。我在我的模型中添加了以下代码
后模型:
public function imageLinks()
{
return $this->hasMany(ImageUpload::class, 'post_id');
}
当我删除帖子时,我收到此错误。我的专栏名称是post_id
,但它会占用id
. 我不明白具体是什么问题。
“消息”:“SQLSTATE [42S22]:未找到列:1054 'where 子句'中的未知列 'id'(SQL:更新
image_upload
集deleted_at
= 2020-07-03 21:28:14,updated_at
= 2020-07-03 21: 28:14 哪里id
是 null)",
解决方案
我建议您在 Delete_post() 函数中添加这几行:例如
$post=post::where('id',=,$id)->get();
$post->delete();
//And you can
$images=imageUpload::where('post_id',=,$post['id'])->delete();
//Or
$post->imageLinks()->delete();
但我不明白为什么你在 images 表中添加了 post_name ,这是没有意义的,因为你可以使用关系来获取它。
推荐阅读
- android - Android 相当于 textViewShouldBeginEditing
- c# - 应用程序暂停时如何保持文件转换处于活动状态
- javascript - Sequelize CLI 在尝试运行 db:seed:all 时抱怨“意外标识符”
- python - 这是什么意思?xarray 错误:无法处理非唯一的多索引
- java - 如何在 JFrame 上显示 JTable
- python - EOFError:在导入 .tar.gz 文件时,压缩文件在到达流结束标记之前结束
- python - 相对导入和 Python 3 的问题
- javascript - 如何修复应使用 CSS 突出显示选定区域的代码
- typescript - 静态异步方法的返回类型
- python - 使用 Selenium GeckoDriver 和 Firefox 时是否可以减少内存 RAM 消耗