laravel - Laravel 不能在使用 belongsToMangy 连接的表上使用 where
问题描述
我有以下模型文件,它与 portal_users 表有 belongsToMany 关系。
class Role extends Model
{
use HasFactory;
protected $table = 'portal_roles';
protected $hidden = array('created_at', 'updated_at','deleted_at');
public function users()
{
return $this->belongsToMany(User::class, 'portal_user_roles');
}
}
我正在尝试使用以下查询查找适合特定角色的所有用户的详细信息
$recordobj = Role::find(15)->users->where('firstname', 'like', '%' . $searchstring . '%')->get()->keyBy('id');
即使有角色 id 为 15 的用户,它也会返回空结果集。谁能告诉我这里有什么问题?
解决方案
更改users
为users()
:
$recordobj = Role::find(15)->users()->where('firstname', 'like', '%' . $searchstring . '%')->get()->keyBy('id');
推荐阅读
- google-bigquery - BigQuery concat 嵌套数组 json
- python - python - 当我希望对象具有 None 值时出现“NoneType”对象错误?
- elasticsearch - 跳过数组中某些值的索引,但将它们保留在 _source
- laravel - 在 Laravel 的 API 控制器中获取经过身份验证的用户
- slack - 使用“conversation.info”Slack API 调用时出现“missing_scope”错误
- c++builder - 在 C++Builder 中使用 Indy TIdTCPServer 读取分隔数据包
- java - 我们如何在 Helidon SE 中实现 q Params
- javascript - 为什么反应中的状态对象没有正确更新?对象的展开和折叠版本不同
- kotlin - 如何使用 kotlinx.serialization 在 Ktor 中序列化 Web Socket Frame.text
- java - 自定义属性文件中未替换 Spring Boot env 变量