laravel - 如何防止 Laravel 在“has”查询中剥离对某些关系的原始约束?
问题描述
在 Laravel 7.x 中,我有一个User
具有hasMany
关系 ( roles
) 的模型。在整个应用程序中,我可以使用 访问User
模型auth()->user()
,并且可以使用 访问roles
关系auth()->user()->roles
。
roles
关系看起来是这样的,
public function roles()
{
return $this->hasMany(Role::class, 'role_id', 'role_id');
}
我有一个Controller
正在使用 EloquentwhereHas
收集一些数据。里面callback
提供给whereHas
我打电话auth()->user()->roles
。然而,当我打这个电话时,Laravel 正在移除对roles
关系的原始约束(where users.role_id = roles.role_id
)。
这种行为在 Laravel 中似乎是非常有意的(查看HasOneOrMany::addConstraints
并Relation::noConstraints
在 Laravel Framework 7.x 分支中)。
我能做些什么来防止剥离has
关系调用中某些关系的原始约束?
解决方案
推荐阅读
- javascript - iFrame 点击事件不适用于 iPhone 中的浏览器 (6/7/8)
- excel - 用户表单输入后锁定单元格
- canape - 脚本在 stadout 中返回一个值,但无法在返回参数中获取值
- scala - 如何在 mockito-scala 中指定超时后模拟没有交互?
- android - Kotlin 中的 JobCancellationException UndispatchedCoroutine 错误
- html - 我正在尝试使用打字稿更改按钮的样式
- laravel - 在 Google Cloud Platform 上部署 Laraval 应用程序 - 问题
- php - 从其他页面推迟联系表格 7 脚本和 css
- android - TableView Appcelerator Titanium 的元素不响应 Android 中的点击
- android - 如何在 Flutter 中删除带有风味的版本上的调试横幅?