Laravel 不能在使用 belongsToMangy 连接的表上使用 where
Posted
技术标签:
【中文标题】Laravel 不能在使用 belongsToMangy 连接的表上使用 where【英文标题】:Laravel cannot use where on a table connected using belongsToMangy 【发布时间】:2021-06-19 23:59:41 【问题描述】:我有以下模型文件,它与 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 的用户,它也会返回空结果集。谁能告诉我这里有什么问题?
【问题讨论】:
【参考方案1】:将users
更改为users()
:
$recordobj = Role::find(15)->users()->where('firstname', 'like', '%' . $searchstring . '%')->get()->keyBy('id');
【讨论】:
以上是关于Laravel 不能在使用 belongsToMangy 连接的表上使用 where的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 不能在使用 belongsToMangy 连接的表上使用 where