laravel - 如何在没有密钥的情况下删除 Laravel 中的 hasMany 关系
问题描述
我试图删除 hasMany 关系但无济于事。
我有三个表:users
、user_details
和manufacturers
User
有一个user_details
user_details
属于user
manufacturers
有很多users
通过user_details
现在当管理员删除制造商时,它需要删除所有具有该制造商ID的user_details和所有相关用户。
我的桌子:
用户:
id, unique_id, first_name, last_name, user_name, email, password, remember_token, created_at, updated_at, deleted_at
用户详细信息
id, user_id, avatar, locale, role_id, manufacturer_id, account_status, hospital_id, phone, city_id, created_at, updated_at, deleted_at
制造商
id, name, status, created_at, updated_at, deleted_at
我正在尝试这样做:
/**
* @return bool|null
* @throws \Exception
*/
public function softDelete()
{
$this->brand_presentations()->delete();
$this->details()->delete();
return parent::delete();
}
在这里,我有我的关系:
public function brand_presentations()
{
return $this->hasMany(Brand_presentations::class, 'manufacturer_id', 'id')->withTrashed();
}
public function details()
{
return $this->hasMany(User_details::class, 'manufacturer_id')->withTrashed();
}
这让我一直到user_details
,但我无法获得用户。我怎样才能得到用户?
解决方案
如果我对您的理解正确,您需要遍历您的详细信息才能删除用户
/**
* @return bool|null
* @throws \Exception
*/
public function softDelete()
{
$this->brand_presentations()->delete();
$details = $this->details
foreach($details as $detail) {
$user = detail->user
// Delete or access user here
$detail->delete()
}
}
推荐阅读
- javascript - 尝试在 JavaScript 之后使用 Python 抓取 HTML……没有运气
- javascript - 为什么我的网站界面无法连接到firebase实时数据库?
- tensorflow-datasets - 将 doc2vec 从 feed-dict 转换为 tf.data 管道
- javascript - ReactJS:本地图像未加载(使用覆盖的路径)
- excel - Rccognise 最后一个工作日并更改单元格值的子字符串
- contact-form - 我需要在联系表格 Prestashop 1.7 中禁用主题下拉选择
- python - 需要帮助在 python 项目中使用 XPATH 和 PhantomJS 获取文本?任何人?
- bison - 如何防止多个空规则的减少/减少冲突?
- groovy - 如何在 Groovy 中的列表中嵌套列表
- android - 从 Android 上的 Stripe 获取卡令牌